Licença MIT vs GPL [fechada]

122

A licença do MIT é compatível com GPL. A licença GPL é compatível com o MIT? ou seja, posso incluir código licenciado MIT em um produto licenciado GPL, mas posso incluir código licenciado GPL em um produto licenciado MIT?

Parece-me que a principal diferença entre a licença MIT e a GPL é que o MIT não exige modificações com código aberto, enquanto a GPL exige. Isso está correto? A GPL é mais restritiva que a licença do MIT?

fruzer
fonte
1
pt.wikipedia.org/wiki/MIT_License A licença também é compatível com a GPL, o que significa que ... #
317 Michael Petrotta

Respostas:

76

Parece-me que a principal diferença entre a licença MIT e a GPL é que o MIT não exige modificações com código aberto, enquanto a GPL exige.

Verdade - em geral. Você não precisa abrir suas alterações de código-fonte se estiver usando a GPL. Você pode modificá-lo e usá-lo para seu próprio propósito, desde que não o distribua. MAS ... se você o distribuir, todo o seu projeto que está usando o código GPL também se tornará GPL automaticamente. O que significa que deve ser de código aberto e o destinatário obtém todos os mesmos direitos que você - ou seja, eles podem revertê-lo e distribuí-lo, modificá-lo, vendê-lo etc. etc. deixar de ser proprietário - ele se torna código aberto.

A diferença com o MIT é que, mesmo que você realmente distribua seu código proprietário que está usando o código licenciado pelo MIT, não é necessário tornar o código de código aberto. Você pode distribuí-lo como um aplicativo fechado em que o código é criptografado ou é um binário. A inclusão do código licenciado pelo MIT pode ser criptografada, desde que contenha o aviso de licença do MIT.

a GPL é mais restritiva que a licença do MIT?

Sim muito mesmo.

Ravi Jayagopal
fonte
16
Devo apenas observar que a GPL não torna o software "de código aberto". O software sob a GPL se torna GRATUITO (como para proteger a liberdade do usuário). O software livre é um movimento mais antigo e mais significativo que o aberto. Aqui está um artigo sobre as diferenças: gnu.org/philosophy/open-source-misses-the-point.html . Obrigado
Jorge Orpinel
11
Pelas mesmas razões, pode-se argumentar que o MIT é mais restritivo, pois não protege todas as liberdades do usuário e pode levar à privatização do software (= restrição e perda de controle pelo usuário). Obrigado novamente
Jorge Orpinel
3
@tcurdt Por que este não é o "lugar certo" para falar sobre liberdade? Por que a autocensura? E não, infelizmente não é isso que significa 'grátis'. Nem mesmo 'aberto' significa isso. Apenas para esclarecer, nem as licenças MIT nem GPL permitem fazer "qualquer coisa com ele". Somente código sem licença pode se enquadrar nessa categoria. Cheers
Jorge Orpinel
3
Errado novamente, é isso que o stackoverflow deve ser para stackoverflow.com/help/on-topic . Alguém que pensa que isso é fora de tópico não o faz. Independentemente disso, tenho liberdade de expressão e esse é um espaço público, então ... Sim. Você simplesmente não consegue lidar com estar errado. Na realidade, estou tentando ajudar você e outros leitores, se puder. Enfim, boa sorte
Jorge Orpinel
8
@JorgeOrpinel "Somente o código sem licença pode se enquadrar nessa categoria." Isso está muito errado, o código sem licença é PROPRIETÁRIO / "todos os direitos reservados". Se você redistribuir o código que outras pessoas criaram sem uma licença, estará arriscando muitos problemas legais. Você diz que está tentando "ajudar você e outros leitores", mas processar os leitores não é exatamente muito útil. Apenas para sua informação.
ponto
45

Posso incluir código licenciado GPL em um produto licenciado pelo MIT?

Você pode. A GPL é um software livre, assim como o MIT, as duas licenças não o restringem para reunir o código onde "incluir" é sempre bidirecional.

Nos direitos autorais de uma obra combinada (ou seja, duas ou mais obras formam uma obra), não faz muita diferença se uma obra é "maior" que a outra ou não.

Portanto, se você incluir o código licenciado pela GPL em um produto licenciado pelo MIT, também incluirá um produto licenciado pelo MIT no código licenciado pela GPL.

Como segunda opinião, o OSI listou os seguintes critérios (em mais detalhes) para ambas as licenças (MIT e GPL):

  1. Redistribuição gratuita
  2. Código fonte
  3. Trabalhos Derivados
  4. Integridade do código fonte do autor
  5. Nenhuma discriminação contra pessoas ou grupos
  6. Nenhuma discriminação contra os campos de atuação
  7. Distribuição de Licença
  8. A licença não deve ser específica para um produto
  9. A licença não deve restringir outro software
  10. A licença deve ser neutra em termos de tecnologia

Ambos permitem a criação de trabalhos combinados, que é o que você está pedindo.

Se a combinação das duas obras for considerada um derivado, isso também não será restrito pelas duas licenças.

E ambas as licenças não se restringem à distribuição do software.

Parece-me que a principal diferença entre a licença MIT e a GPL é que o MIT não exige modificações com código aberto, enquanto a GPL exige.

A GPL não exige que você libere suas modificações apenas porque você as fez. Isso não é preciso.

Você pode misturar isso com a distribuição de software na GPL, que não é o que você perguntou diretamente.

Isso está correto - a GPL é mais restritiva que a licença do MIT?

É assim que eu entendo:

No que diz respeito à distribuição, você precisa colocar o pacote inteiro na GPL. O código MIT dentro do pacote ainda estará disponível no MIT, enquanto a GPL se aplica ao pacote como um todo, se não for limitada por direitos mais altos.

"Restritivo" ou "mais restritivo" / "menos restritivo" depende muito do ponto de vista. Para um usuário de software, o MIT pode resultar em um software mais restrito do que o disponível na GPL, mesmo alguns chamando a GPL mais restritiva atualmente. Esse usuário em particular chamará o MIT mais restritivo. É apenas subjetivo dizer isso e pessoas diferentes darão respostas diferentes para isso.

Como é apenas subjetivo falar sobre restrições de licenças diferentes, você deve pensar no que gostaria de obter:

  • Se você deseja restringir o uso de suas modificações, o MIT pode ser mais restritivo que a GPL para distribuição e pode ser o que você está procurando.
  • Caso você deseje garantir que a liberdade do seu software não seja tão restrita pelos usuários aos quais você o distribui, é recomendável liberá-lo sob a GPL, em vez do MIT.

Desde que você seja o autor, é você quem pode decidir.

Portanto, a pessoa mais restritiva de todos os tempos é o autor, independentemente de qual licença alguém esteja optando;)

hakre
fonte
1
"O código MIT dentro do pacote ainda estará disponível no MIT" não tenho certeza. um projeto GPL + MIT deve entregar um projeto de código aberto, incluindo a parte do MIT. Por outro assunto, a LGPL é menos invasiva para todo o projeto.
magallanes
13
Embora você esclareça mais adiante em sua resposta, é muito enganador começar dizendo que "você pode" incluir código licenciado GPL em um projeto licenciado pelo MIT. Um projeto que foi originalmente licenciado pelo MIT não pode mais ser distribuído como um todo sob a licença do MIT, uma vez que contém código disponível apenas sob a GPL.
Antinome
3
Também é enganoso afirmar que a restrição é subjetiva. É uma pergunta razoável e não-subjetiva perguntar "que ações posso legalmente executar com esses arquivos que obtive?" Sob a GPL, esse conjunto de ações é de fato um subconjunto adequado do que essas ações teriam sido no MIT.
Antinome
1
@hakra: a inclusão de código licenciado pela GPL em um projeto licenciado pelo MIT não é possível porque o todo resultante não é mais licenciado pelo MIT, mesmo que você não o distribua. (Se fosse, então os termos da licença MIT iria permitir que você distribuí-lo!)
antinome
9
tl; dr: um aplicativo licenciado pelo MIT pode incluir código GPL, mas o aplicativo resultante não é licenciado pelo MIT.
Antinome
16

Você está certo de que a GPL é mais restritiva que a licença do MIT.

Você não pode incluir o código GPL em um produto licenciado pelo MIT. Se você distribuir um trabalho combinado que combine o código GPL e MIT (exceto em algumas situações particulares, por exemplo, 'mera agregação'), essa distribuição deverá estar em conformidade com a GPL.

Você pode incluir o código licenciado do MIT em um produto GPL. Todo o trabalho combinado deve ser distribuído de maneira compatível com a GPL. Se você fez alterações nas partes do código do MIT, seria necessário publicar a fonte dessas alterações se distribuir um aplicativo que contenha códigos GPL e MIT.

Se você é o proprietário dos direitos autorais do código GPL, é claro que pode optar por liberá-lo sob a licença MIT - nesse caso, é o seu código e você pode publicá-lo com quantas licenças quiser.

JosephH
fonte
3
a menos que o projeto esteja sob uma licença dupla, por exemplo, jquery.
buggedcom
7
@buggedcom - Você pode licenciar duas vezes as peças que estavam sob a licença MIT, mas não pode licenciar duas vezes uma biblioteca MIT / GPL combinada - ela deve ser licenciada somente sob a GPL. (Você não pode pegar peças licenciadas pela GPL e as licenciar novamente sob a licença MIT, pois isso é contrário aos termos da GPL). No caso do jQuery, os proprietários dos direitos autorais do código o liberaram sob a licença dupla, o que não é um problema, mas se "emprestaram" algum código GPL de outro lugar, não poderão mais licenciar o trabalho combinado com o MIT. .
Mark H
AFAIK isso não é bem verdade. De acordo com a FSF, a GPL é compatível com a licença do MIT [1] Infelizmente, isso não altera o fato de que o projeto em si não está mais totalmente coberto pela licença do MIT ... o que as pessoas normalmente esperam. Você não seria mais capaz de usar o projeto como um todo em um contexto comercial sem liberar o código. Para evitar essa confusão, é melhor não incluir o código GPL em um projeto licenciado pelo MIT. Que você não pode, está errado. [1] gnu.org/licenses/license-list.html#SoftwareLicenses
tcurdt 31/12/11
... mas acho que depende do que você define como "produto"
tcurdt 31/12/11
2
Um produto licenciado pelo MIT (talvez 'aplicativo' seja uma palavra melhor) não pode incluir o código GPL. Você pode adicionar código GPL a um produto MIT, mas o aplicativo resultante pode ser distribuído apenas sob a licença GPL. Nunca vi alguém descrever um aplicativo que possa ser distribuído apenas sob os termos da GPL como um 'produto licenciado pelo MIT'. Se as licenças não fossem "compatíveis", não seria possível produzir um trabalho combinado - o fato de serem compatíveis significa que você pode produzir um trabalho combinado que você pode distribuir e é licenciado pela GPL.
Josephh
5

IANAL mas a meu ver ....

Embora você possa combinar o código GPL e MIT, o GPL está corrompido. O que significa que o pacote como um todo obtém as limitações da GPL. Como isso é mais restritivo, você não pode mais usá-lo em software comercial (ou de código fechado). O que também significa que, se você possui um projeto MIT / BSD / ASL, não deseja adicionar dependências ao código GPL.

Adicionar uma dependência da GPL não altera a licença do seu código, mas limitará o que as pessoas podem fazer com o artefato do seu projeto. É também por isso que o ASF não permite dependências do código GPL para seus projetos.

http://www.apache.org/licenses/GPL-compatibility.html

tcurdt
fonte
1
De fato, a Microsoft identifica esse problema perfeitamente, a GPL é viral porque transforma todos os projetos em código aberto.
magallanes
10
Não é um problema . A GPL é viral por design. Ele deve ser usado por pessoas que desejam liberar seu código para que outras pessoas o usem da maneira que desejarem, mas também exige que outras pessoas que publicam cópias desse software ou de um derivado respeitem os usuários da mesma maneira. A GPL é sobre usuários . Não se trata de empresas que maximizam o lucro por meio de monopólios impostos pelo Estado; portanto, o fato de ser recursivo é na verdade sua beleza e força, não um 'problema' que a Microsoft possa identificar com perfeição. Não é preciso nenhuma percepção especial para reconhecer que a GPL é viral ~ Wikipedia é suficiente.
Carl Smith