052.3 Lição 1
Certificação: |
Open Source Essentials |
---|---|
Versão: |
1.0 |
Tópico: |
052 As licenças de software open source |
Objetivo: |
052.3 Licenças de software permissivas |
Lição: |
1 de 1 |
Introdução
As licenças permissivas são, atualmente, as licenças de código aberto mais utilizadas, em contraste com as licenças restritivas, como a Licença Pública Geral GNU (GPL). As licenças de software permissivas costumam ser simples e flexíveis, proporcionando uma grande liberdade aos autores — talvez a maior liberdade disponível entre as licenças de código aberto.
Esse tipo de licença concede ampla liberdade aos desenvolvedores de software quanto ao uso, modificação e redistribuição do software, desde que reconheçam o autor original. Assim, é possível distribuir uma obra derivada sob uma licença de código fechado, com a condição de se atribuir os devidos créditos ao autor da criação original.
O princípio por trás desta lógica é permitir a máxima disseminação possível do software. A intenção por trás das licenças permissivas é beneficiar tanto os indivíduos quanto o público, facilitando o uso comercial do software, preservando ao mesmo tempo os direitos do autor original através da atribuição.
Não é por acaso que as primeiras e mais importantes licenças permissivas de software foram desenvolvidas no campo acadêmico, como as licenças do tipo BSD da Universidade de Berkeley, na Califórnia, ou a Licença MIT/X11 do Massachusetts Institute of Technology. Elas são conhecidas como licenças acadêmicas de código aberto. Sua influência na indústria foi tal que elas lançaram as bases para licenças de software permissivas semelhantes, concebidas fora de contextos acadêmicos, como a Licença Apache da Apache Software Foundation.
Direitos e obrigações das licenças de software permissivas
Em geral, as licenças de software permissivas mais populares concedem ao licenciado o direito ilimitado de:
- Usar o software
-
O software coberto por uma licença permissiva pode ser utilizado por qualquer pessoa (sejam usuários individuais, empresas comerciais ou autoridades públicas) e para qualquer finalidade, seja ela pessoal ou profissional.
- Modificar o software
-
O software pode ser melhorado, adaptado ou mesmo integrado como um componente (por exemplo, uma biblioteca) em outro software.
- Redistribuir o software
-
Se o software for modificado, assumindo a forma de uma obra derivada, ele poderá ser redistribuído sob diferentes licenças, inclusive proprietárias.
A única obrigação nas licenças permissivas de software geralmente é a de atribuição: o licenciado é obrigado a indicar o nome do autor original do software na obra derivada e incluir uma cópia do texto da licença em toda redistribuição do software.
Características das mais importantes licenças permissivas de software
Esta seção explica as diferenças entre a licença MIT/X11, as licenças BSD mais comuns, e a licença Apache 2.0, todas amplamente utilizadas atualmente.
Licença MIT/X11
A licença MIT/X11 (text: https://opensource.org/license/mit), também conhecida como licença X11, é uma das licenças acadêmicas que mencionamos anteriormente. A licença leva o nome do software X Window System, desenvolvido pelo Massachusetts Institute of Technology em 1987. Esta é uma das licenças permissivas de software mais antigas e populares, em parte devido à sua linguagem simples e clara.
Esta licença concede ao licenciado os direitos de:
-
Usar, modificar e distribuir o software
-
Comercializar o software, com ou sem modificações
-
Liberar obras derivadas sob uma licença diferente, inclusive como software de código fechado
A única obrigação do licenciado é incluir o aviso de direitos autorais e o texto da licença no código-fonte do software ou de seus trabalhos derivados.
A licença MIT/X11 é considerada compatível com todas as licenças copyleft mais importantes, tanto fracas quanto fortes. Em particular, a licença MIT/X11 é compatível com:
-
Licença Pública Geral GNU (GPL), versões 2.0 e 3.0
-
Licença Pública Geral Menor GNU (LGPL), versões 2.0 e 3.0
-
Licença Pública Mozilla (MPL)
Isso significa que obras derivadas de software originalmente licenciado sob a licença MIT/X11 podem ser redistribuídas sob uma das licenças mencionadas acima ou incluídas em projetos lançados sob uma delas.
Licença BSD de 2 cláusulas
A licença BSD de 2 cláusulas (texto: https://opensource.org/license/bsd-2-clause) deriva da licença BSD original, criada em 1980 pela Universidade de Berkeley, na Califórnia, como licença para o BSD, seu sistema operacional semelhante ao Unix.
A licença é conhecida por sua simplicidade e, como o próprio nome indica, consiste em apenas duas cláusulas curtas. Ela é substancialmente idêntica à licença MIT/X11 — como esta última, ela também requer atribuição no software e exige que o licenciado inclua o texto da licença na documentação e em outros materiais fornecidos ao redistribuir o código.
Resumindo, a licença BSD de 2 cláusulas concede os direitos para:
-
Usar, modificar e distribuir o software
-
Comercializar o software, com ou sem modificações
-
Lançar obras derivadas sob uma licença diferente, inclusive como software de código fechado
O licenciado tem a obrigação de:
-
Incluir o aviso de direitos autorais e o texto da licença no código-fonte e no binário do software ou obras derivadas
-
Incluir o aviso de direitos autorais e o texto da licença na documentação ou outros materiais fornecidos com o software
A licença BSD de 2 cláusulas é considerada compatível com todas as principais licenças copyleft, tanto fracas quanto fortes. Em particular, a licença BSD de 2 cláusulas é compatível com:
-
Licença Pública Geral GNU (GPL), versões 2.0 e 3.0
-
Licença Pública Geral Menor GNU (LGPL), versões 2.0 e 3.0
-
Licença Pública Mozilla (MPL)
Portanto, as obras derivadas de um software originalmente licenciado sob a licença BSD de 2 cláusulas podem ser redistribuídas sob uma das licenças mencionadas acima ou incluídas em projetos lançados sob uma delas.
Licença BSD de 3 cláusulas
A licença BSD de 3 cláusulas (text: https://opensource.org/license/bsd-3-clause) é mais uma variante da licença BSD original e consiste, como o nome diz, em apenas três cláusulas. A principal característica que distingue esta licença de sua irmã de 2 cláusulas é a “cláusula de não endosso”, que visa evitar que o nome do autor original seja explorado para distribuir ou vender obras derivadas.
A licença BSD de 3 cláusulas concede ao licenciado os direitos para:
-
Usar, modificar e distribuir o software
-
Comercializar o software, com ou sem modificações
-
Liberar obras derivadas sob uma licença diferente, inclusive como software de código fechado
O licenciado tem a obrigação de:
-
Incluir o aviso de direitos autorais e o texto da licença no código-fonte e no binário do software ou das obras derivadas
-
Incluir o aviso de direitos autorais e o texto da licença na documentação ou outros materiais fornecidos com o software
-
Abster-se de citar o nome do titular do direito autoral ou colaboradores para endossar ou promover produtos derivados deste software sem permissão prévia específica por escrito
Para explicar esta última obrigação — a “cláusula de não endosso” — vamos pensar em um cenário em que uma empresa ou indivíduo cria uma obra derivada a partir de um software licenciado sob uma licença de software permissiva. Na ausência desta cláusula, o licenciado poderia promover a nova obra indicando que se trata de um derivado do software criado por um programador conhecido, beneficiando-se assim do seu prestígio.
Como no caso de sua irmã, a licença BSD de 3 cláusulas é considerada compatível com todas as licenças copyleft mais importantes, tanto fracas quanto fortes. Em particular, a licença BSD de 3 cláusulas é compatível com:
-
Licença Pública Geral GNU (GPL), versão 2.0 e 3.0
-
Licença Pública Geral Menor GNU (LGPL), versão 2 e 3
-
Licença Pública Mozilla (MPL)
Portanto, as obras derivadas de software originalmente licenciado sob a licença BSD de 3 cláusulas podem ser redistribuídas sob uma das licenças mencionadas acima ou incluídas em projetos lançados sob uma delas.
Licença Apache 2.0
A primeira licença Apache foi desenvolvida pela Apache Software Foundation, uma organização sem fins lucrativos criada em 1999, para distribuir seu software e facilitar sua inclusão em outros projetos. A missão era garantir o desenvolvimento colaborativo de software, abraçando a filosofia open source com uma perspectiva favorável aos negócios.
A licença Apache 2.0 (text: https://www.apache.org/licenses/LICENSE-2.0), provavelmente a mais difundida entre as licenças de software permissivas, difere das licenças discutidas anteriormente em alguns aspectos relevantes. O principal deles diz respeito à atribuição de direitos de patente a cada licenciado, incluindo uma cláusula relativa à extinção da licença de patente, de forma a limitar e evitar quaisquer pedidos de indenização por violação de patente.
Vale também citar duas outras obrigações. O licenciado deve lançar, sob a mesma licença Apache 2.0, quaisquer partes ou componentes do software não modificados pelo licenciado. Além disso, o licenciado deve colocar avisos em destaque em quaisquer arquivos modificados, informando que eles foram alterados.
A Free Software Foundation, que promove licenças restritivas, recomenda o Apache 2.0 como a melhor das licenças de software permissivas para distribuição de pequenas quantidades de software e bibliotecas.
A licença Apache 2.0 concede ao licenciado:
-
O direito de usar, modificar e distribuir o software
-
O direito de comercializar o software, com ou sem modificações
-
O direito de lançar obras derivadas sob uma licença diferente, inclusive como software de código fechado
-
Uma licença de patente para usar, vender, importar e transferir de qualquer outra forma um software coberto por uma patente
-
Uma licença de patente para usar, vender, importar e transferir de qualquer outra forma um software que poderia infringir a reivindicação de patente de um colaborador
O licenciado tem a obrigação de:
-
Colocar avisos em destaque em quaisquer arquivos modificados, informando sobre a modificação
-
Lançar todas as partes não modificadas do software original sob a licença Apache 2.0
-
Incluir o aviso de direitos autorais e o texto da licença no código-fonte do software e das obras derivadas
-
Incluir o aviso de direitos autorais e o texto da licença na documentação e outros materiais fornecidos com o software
A licença Apache 2.0 é considerada compatível apenas com algumas das licenças copyleft mais importantes. Em particular, a licença Apache 2.0 é compatível com:
-
Licença Pública Geral GNU (GPL), versão 3.0, mas não 2.0
-
Licença Pública Geral Menor GNU (LGPL), versão 3.0, mas não 2.0
-
Licença Pública Mozilla (MPL), versão 2.0, mas não 1.1
Isso significa que as obras derivadas de software originalmente licenciado sob a licença Apache 2.0 podem ser redistribuídas sob uma das licenças compatíveis mencionadas acima ou incluídas em projetos lançados sob uma delas.
A compatibilidade limitada entre a licença Apache 2.0 e outras licenças de código aberto se deve principalmente à presença de cláusulas relacionadas à concessão de uma licença de patente ao licenciado.
Licenças de software permissivas em relação a outras licenças de código aberto
Agora que temos uma visão geral dos recursos comuns e essenciais das licenças de software permissivas, podemos prosseguir e examinar como elas diferem do software de domínio público e das licenças copyleft.
Comparação com o software de domínio público
A primeira distinção entre as licenças de software permissivas e o software de domínio público reside na sua própria existência. O domínio público não é uma licença de fato, mas apenas uma forma de lançar software. Em outras palavras, por definição, as obras de domínio público não têm licença.
A distinção seguinte reside nas obrigações que as licenças permissivas impõem ao licenciado. De fato, o usuário de um software em domínio público não tem nenhuma obrigação. No entanto, qualquer pessoa que utilize, modifique ou redistribua um software que esteja sob uma licença de software permissiva deve cumprir a obrigação de atribuição explicada anteriormente: um requisito de incluir o nome do autor original e uma cópia do texto da licença no software.
A consequência da obrigação de atribuição é que nenhuma obra derivada originada de um software sob uma licença permissiva pode ser lançada como domínio público, pois isso violaria (ou pelo menos contornaria) o direito do autor original de receber a atribuição.
Comparação com o copyleft
A distinção entre licenças de software permissivas e licenças copyleft restritivas é mais complexa, especialmente levando-se em conta as diferenças entre as várias licenças copyleft. Como vimos nas lições anteriores, uma grande diferença separa as licenças copyleft fortes (incluindo a Licença Pública Geral GNU (GPL), versão 2.0 e 3.0) das licenças copyleft fracas (incluindo a Licença Pública Geral Menor GNU (LGPL), versão 2.0 e 3.0, e a Licença Pública Mozilla).
A principal diferença entre as licenças restritivas e as permissivas reside no princípio copyleft, que é fundamental para as licenças restritivas. Em conformidade com este princípio, o licenciado que modifica um software sob licença copyleft e depois o distribui deve necessariamente lançar — total ou parcialmente — a obra derivada com a mesma licença do software original. O não cumprimento dessa obrigação resulta em violação de direitos autorais, com as consequências legais correspondentes.
Por sua vez, as licenças de software permissivas não impõem essa obrigação. Aqueles que usam ou planejam lançar software sob esse tipo de licença podem decidir livremente a licença para sua obra derivada, incluindo licenças proprietárias.
Copyleft forte
Há mais diferenças entre as licenças de software permissivas e as licenças copyleft fortes do que entre estas e as licenças copyleft fracas.
A diferença essencial é que as licenças copyleft fortes exigem que as obras derivadas sejam lançadas sob a mesma licença do software original. Isso também se aplica se o software licenciado por copyleft for integrado a outro projeto: a obra derivada inteira deverá ser lançada sob a mesma licença copyleft forte.
Copyleft Fraco
Ao contrário das licenças copyleft fortes, as fracas têm apenas um requisito parcial para lançar uma obra derivada sob a mesma licença. Especificamente, o licenciado que redistribui software lançado sob uma licença copyleft fraca deve aplicar a mesma licença à parte de sua criação derivada do original. Por exemplo, uma biblioteca baseada em uma biblioteca licenciada sob a LGPL também deve ser licenciada sob a LGPL.
As licenças copyleft fracas foram concebidas justamente para aproximar suas características das licenças de software permissivas. Porém, elas se distinguem das licenças permissivas, já que estas últimas não impõem, em caso algum, a obrigação de manter a mesma licença sobre uma obra derivada ou integrada.
Exercícios Guiados
-
Quais as duas obrigações geralmente impostas pelas licenças de software permissivas?
-
Qual das seguintes licenças não é uma licença de software permissiva?
Licença Apache 2.0
Licença LGPL
Licença MIT/X11
3-Clause BSD
-
O que distingue uma licença de software permissiva de uma licença copyleft?
O software lançado sob uma licença copyleft não pode ser distribuído, mas o software sob licença de software permissiva sim.
As obras derivadas de software sob licença copyleft não podem ser lançadas sob licença proprietária, mas o software sob licença permissiva sim.
As licenças copyleft são legalmente reconhecidas apenas nos Estados Unidos da América, ao passo que as licenças de software permissivas são reconhecidas globalmente.
-
Qual licença permissiva de software concede uma licença de patente para usar, vender, importar e transferir, de qualquer outra forma, o software coberto por uma patente?
Licença Apache 2.0
Licença BSD de 2 cláusulas
Licença MIT/X11
Licença BSD de 3 cláusulas
-
Quando um software é lançado sob a licença MIT/X11, é possível distribuí-lo sob uma licença proprietária e vender um trabalho derivado baseado nele?
Exercícios Exploratórios
-
Você pretende modificar um software distribuído sob a licença Apache 2.0 e redistribuir a obra derivada sob uma licença proprietária. Quais etapas é preciso seguir para estar em conformidade com as obrigações da licença Apache 2.0?
-
Cite ao menos três exemplos de projetos populares lançados sob licenças de software permissivas.
-
Por que não é possível distribuir, sob uma licença LGPL 2.0, um software que inclua componentes originalmente lançados sob as licenças MIT/X11, Apache 2.0 e BSD de 2 cláusulas? Quais licenças copyleft fracas diferentes poderiam ser usadas para lançar o software?
Resumo
Nesta lição, você aprendeu: * O que são licenças de software permissivas, os direitos que elas concedem e as obrigações que acarretam * As diferenças entre as licenças de software permissivas e outras licenças de código aberto * As características das licenças de software permissivas mais usadas * A compatibilidade das licenças de software permissivas com outras licenças de código aberto
Respostas aos Exercícios Guiados
-
Quais as duas obrigações geralmente impostas pelas licenças de software permissivas?
A obrigação de indicar o nome do autor original do software e de incluir uma cópia do texto da licença na obra derivada.
-
Qual das seguintes licenças não é uma licença de software permissiva?
Licença Apache 2.0
Licença LGPL
X
Licença MIT/X11
3-Clause BSD
-
O que distingue uma licença de software permissiva de uma licença copyleft?
O software lançado sob uma licença copyleft não pode ser distribuído, mas o software sob licença de software permissiva sim.
As obras derivadas de software sob licença copyleft não podem ser lançadas sob licença proprietária, mas o software sob licença permissiva sim.
X
As licenças copyleft são legalmente reconhecidas apenas nos Estados Unidos da América, ao passo que as licenças de software permissivas são reconhecidas globalmente.
-
Qual licença permissiva de software concede uma licença de patente para usar, vender, importar e transferir, de qualquer outra forma, o software coberto por uma patente?
Licença Apache 2.0
X
Licença BSD de 2 cláusulas
Licença MIT/X11
Licença BSD de 3 cláusulas
-
Quando um software é lançado sob a licença MIT/X11, é possível distribuí-lo sob uma licença proprietária e vender um trabalho derivado baseado nele?
Sim.
Respostas aos Exercícios Exploratórios
-
Você pretende modificar um software distribuído sob a licença Apache 2.0 e redistribuir a obra derivada sob uma licença proprietária. Quais etapas é preciso seguir para estar em conformidade com as obrigações da licença Apache 2.0?
É necessário:
-
Inserir em cada arquivo modificado um aviso atestando que os arquivos foram modificados.
-
Lançar todas as partes não modificadas do software original sob a licença Apache 2.0.
-
Incluir o aviso de direitos autorais e o texto da licença no código-fonte do software ou de obras derivadas.
-
Incluir o aviso de direitos autorais e o texto da licença na documentação e em outros materiais fornecidos com a distribuição do software.
-
-
Cite ao menos três exemplos de projetos populares lançados sob licenças de software permissivas.
-
Angular web framework — licença MIT/X11
-
Ruby on Rails — licença MIT/X11
-
Apache HTTP Server — licença Apache 2.0
-
Kubernetes — licença Apache 2.0
-
-
Por que não é possível distribuir, sob uma licença LGPL 2.0, um software que inclua componentes originalmente lançados sob as licenças MIT/X11, Apache 2.0 e BSD de 2 cláusulas? Quais licenças copyleft fracas diferentes poderiam ser usadas para lançar o software?
Embora a licença MIT/X11 e a licença BSD de 2 cláusulas sejam compatíveis com a licença LGPL 2.0, a licença Apache 2.0 não é. Um software que inclua componentes lançados sob as licenças MIT/X11, Apache 2.0 e BSD de 2 cláusulas poderá ser lançado sob a licença LGPL 3.0, porque ela é compatível com todas as licenças de software permissivas.