Como escolher uma licença Open Source para a estrutura RAD no GitHub
Neste artigo falaremos um pouco sobre direitos autorais, mas principalmente sobre a escolha de uma licença gratuita para o framework RAD IONDV. Estrutura e para produtos de código aberto baseados nele. Iremos informá-lo sobre a licença de licenciamento Apache 2.0, sobre o que nos levou a isso e quais decisões enfrentamos no processo.
O processo de escolha de uma licença é bastante trabalhoso e deve ser abordado já bem lido, e se você não é um feliz proprietário de uma formação jurídica, então um campo não explorado de informações sobre várias licenças gratuitas se abre diante de você. A principal coisa a fazer é traçar uma série de critérios limitantes. Através do processo de discussão e reflexão, você e sua equipe poderão entender o que desejam permitir aos usuários do seu produto e o que proibir. Quando você já tem uma determinada descrição em mãos, é necessário sobrepô-la às licenças existentes e selecionar aquela onde coincide o maior número de pontos. Parece simples, claro, mas na realidade, geralmente mesmo após discussão, as dúvidas permanecem.
Primeiro, um link para escolhaalicense.com, um site útil que usamos extensivamente. Preste atenção especial a Tabela de comparação licenças de acordo com 13 critérios principais. Que o inglês e a paciência estejam com você.
A agonia da escolha
Vamos começar com as características gerais das licenças para software grátis. O software de código aberto implica uma licença exclusivamente gratuita, que não limita a distribuição comercial e não comercial de acordo com o modelo Núcleo aberto. Assim, colocar software na rede sob licença gratuita não pode limitar completamente sua transferência, distribuição e venda por terceiros, bastando estar mentalmente preparado para isso.
Uma licença gratuita dá ao usuário o direito de participar da engenharia reversa do software ou alterá-lo de outras formas disponíveis. A maioria das licenças não permite renomear o produto ou realizar qualquer manipulação com ele, alterando os direitos do autor e/ou proprietário do sistema.
As principais questões que nos interessaram sobre licenças gratuitas foram:
As alterações feitas no software devem ser registradas e não ter relação com o detentor dos direitos autorais do sistema?
O nome do software derivado não deveria ser igual ao nome do software do detentor dos direitos autorais?
É possível alterar a licença de qualquer nova versão para outra, inclusive proprietária?
Depois de analisar atentamente a lista das licenças mais comuns, selecionamos várias que consideramos mais detalhadamente. Licenças potenciais para IONDV. Estrutura foram: GNU GPLv3, Apache 2.0, MIT e MPL. MIT quase imediatamente excluída, esta é uma licença permissiva não copyleft, que permite o uso, modificação e distribuição do código de quase qualquer forma, mas não ficamos satisfeitos com esta opção, ainda queríamos que a licença regulasse a relação entre os direitos autorais titular e o usuário. A maioria dos projetos menores no GitHub são publicados sob a licença MIT ou suas diversas variações. A licença em si é muito curta e as únicas proibições são indicar a autoria do criador do software.
Em seguida foi a licença MPL 2.0. É certo que não chegamos a esse ponto de imediato, mas depois de estudá-lo mais detalhadamente, rapidamente descartamos, pois a principal desvantagem é que a licença não se aplica a todo o projeto, mas a arquivos individuais. Além disso, se o usuário alterar o arquivo, ele não poderá alterar a licença. Na verdade, não importa o quão diligentemente você altere um projeto de código aberto, você nunca será capaz de monetizá-lo por causa de tal licença. A propósito, isso não diz respeito ao detentor dos direitos autorais.
Um problema semelhante persiste com a licença GNU GPLv3. Requer que qualquer arquivo permaneça sob ele. A GNU GPL é uma licença copyleft que exige que os trabalhos derivados sejam de código aberto e permaneçam sob a mesma licença. Ou seja: ao reescrever duas linhas de código, você será forçado a submeter suas alterações e, durante uso ou distribuição posterior, salvar o código sob a GNU GPL. Neste caso, este é um fator limitante para o usuário do nosso projeto, e não para nós. Mas é proibido alterar a GPL para qualquer outra licença, mesmo dentro das versões GPL. Por exemplo, se você alterar LGPL (um complemento da GPL) à GPL, então não haverá caminho de volta à LGPL. E este ponto foi decisivo para votar contra.
No geral, a nossa escolha inicialmente inclinou-se para GPL3 justamente por causa da distribuição do código modificado sob a mesma licença. Achávamos que dessa forma poderíamos proteger nosso produto, mas vimos menos riscos no Apache 2.0. De acordo com a Free Software Foundation, a GPLv3 é compatível com a Licença Apache v2.0, o que significa que é sempre possível alterar a licença da Licença Apache v2.0 para a GPL v3.0.
Apache 2.0
Apache 2.0 — uma licença permissiva equilibrada com ênfase nos direitos autorais. Aqui estão as respostas que ela deu às perguntas que nos interessaram. As alterações feitas no software devem ser registradas e não ter relação com o detentor dos direitos autorais do sistema? Sim, todas as alterações devem ser documentadas e não nos responsabilizamos pelo código original ou modificado. O arquivo com as alterações deve ser anexado ao código no qual você fez essas alterações. O nome do software derivado não deveria ser igual ao nome do software do detentor dos direitos autorais? Sim, o software derivado deve ser lançado com um nome diferente e sob uma marca comercial diferente, mas com a indicação do detentor dos direitos autorais. É possível alterar a licença de qualquer nova versão para outra, inclusive proprietária? Sim, pode ser lançado sob diferentes licenças, o Apache 2.0 não limita o uso de quaisquer licenças comerciais e não comerciais.
Além disso, ao lançar novos produtos baseados em código-fonte aberto para Apache 2.0 ou produtos com funcionalidades adicionais, não é necessário usar a mesma licença. Abaixo você pode ver uma imagem com os termos e restrições da licença Apache 2.0.
A licença impõe a exigência de preservar e mencionar os direitos autorais e a licença sob a qual o software é lançado. Disponibilidade obrigatória aviso de direitos autorais com o nome do detentor dos direitos autorais e uma licença protege os direitos do autor original do software, pois mesmo que seja renomeado, doado ou vendido sob uma licença diferente, a marca do autor ainda permanecerá. Você também pode usar o arquivo para isso AVISO e anexe-o ao código-fonte ou à documentação do projeto.
IONDV. Framework é uma estrutura de código aberto baseada em node.js para a criação de aplicativos web de alto nível baseados em metadados, que não requerem habilidades sérias de programação.
A base da funcionalidade do aplicativo é o registro de dados - o módulo Cadastro. Este é um módulo chave projetado diretamente para trabalhar com dados baseados em estruturas de metadados - incluindo aqueles para gerenciamento de projetos, programas, eventos, etc. O projeto também usa um módulo de portal para exibir modelos de dados arbitrários - ele implementa o registro frontal do arquivo.
MongoDb é usado para DBMS - ele armazena configurações de aplicativos, metadados e os próprios dados.
Como aplicar uma licença ao seu projeto?
Adicionar um arquivo LICENÇA com o texto da licença no repositório do seu projeto e voilà, um projeto protegido pelo Apache 2.0. Você precisa indicar o detentor dos direitos autorais, é isso aviso de direitos autorais. Isso pode ser feito no código-fonte ou em um arquivo AVISO (um arquivo de texto listando todas as bibliotecas licenciadas sob a licença Apache junto com os nomes de seus criadores). Coloque o próprio arquivo no código-fonte ou na documentação distribuída junto com o trabalho. Para nós é assim:
TERMOS E CONDIÇÕES DE USO, REPRODUÇÃO E DISTRIBUIÇÃO
Definições
"Licença" significa os termos e condições de uso, reprodução,
e distribuição conforme definido pelas Seções 1 a 9 deste documento.
"Licenciante" significa o proprietário dos direitos autorais ou entidade autorizada por
o proprietário dos direitos autorais que está concedendo a licença.
“Pessoa Jurídica” significa a união da entidade atuante e de todos
outras entidades que controlam, são controladas por ou estão em comum
controle com essa entidade. Para os fins desta definição,
"controle" significa (i) o poder, direto ou indireto, de fazer com que o
direção ou gestão de tal entidade, seja por contrato ou
caso contrário, ou (ii) propriedade de cinquenta por cento (50%) ou mais do
ações em circulação, ou (iii) usufruto de tal entidade.
“Você” (ou “Seu”) significa uma pessoa física ou jurídica
exercer as permissões concedidas por esta Licença.
Formulário "Fonte" significa o formato preferido para fazer modificações,
incluindo, mas não se limitando a, código-fonte do software, documentação
fonte e arquivos de configuração.
Forma "objeto" significa qualquer forma resultante de
transformação ou tradução de uma forma de origem, incluindo, mas
não se limitando a código-objeto compilado, documentação gerada,
e conversões para outros tipos de mídia.
"Trabalho" significa o trabalho de autoria, seja na Fonte ou
Formulário de objeto, disponibilizado sob a Licença, conforme indicado por um
aviso de direitos autorais que está incluído ou anexado ao trabalho
(um exemplo é fornecido no Apêndice abaixo).
"Trabalhos Derivados" significa qualquer trabalho, seja na Fonte ou no Objeto
forma, que é baseada (ou derivada) da Obra e para a qual o
revisões editoriais, anotações, elaborações ou outras modificações
representam, como um todo, uma obra de autoria original. Para os propósitos
desta Licença, Trabalhos Derivados não incluirão trabalhos que permaneçam
separáveis de, ou simplesmente vincular (ou vincular pelo nome) às interfaces de,
o Trabalho e Obras Derivadas do mesmo.
"Contribuição" significa qualquer trabalho de autoria, incluindo
a versão original da Obra e quaisquer modificações ou acréscimos
a essa Obra ou a Obras derivadas dela, ou seja, intencionalmente
submetido ao Licenciante para inclusão na Obra pelo proprietário dos direitos autorais
ou por uma pessoa física ou jurídica autorizada a enviar em nome de
o proprietário dos direitos autorais. Para efeitos desta definição, “submetido”
significa qualquer forma de comunicação eletrônica, verbal ou escrita enviada
ao Licenciante ou seus representantes, incluindo, mas não se limitando a
comunicação em listas de mala direta, sistemas de controle de código-fonte,
e sistemas de rastreamento de problemas que são gerenciados por, ou em nome de, o
Licenciante com o objetivo de discutir e melhorar a Obra, mas
excluindo comunicação que está claramente marcada ou de outra forma
designado por escrito pelo proprietário dos direitos autorais como “Não é uma contribuição”.
"Contribuidor" significa o Licenciador e qualquer pessoa física ou jurídica
em nome de quem uma contribuição foi recebida pelo Licenciante e
subsequentemente incorporado na Obra.
Concessão de Licença de Direitos Autorais. Sujeito aos termos e condições de
esta Licença, cada Colaborador concede a Você uma perpétua,
mundial, não exclusivo, sem cobrança, livre de royalties, irrevogável
licença de direitos autorais para reproduzir, preparar trabalhos derivados de,
exibir publicamente, executar publicamente, sublicenciar e distribuir o
Obra e tais Obras Derivadas na forma de Fonte ou Objeto.
Concessão de Licença de Patente. Sujeito aos termos e condições de
esta Licença, cada Colaborador concede a Você uma perpétua,
mundial, não exclusivo, sem cobrança, livre de royalties, irrevogável
(exceto conforme indicado nesta seção) licença de patente para fazer, ter feito,
usar, oferecer para vender, vender, importar e de outra forma transferir a Obra,
onde tal licença se aplica apenas às reivindicações de patentes licenciáveis
por tal Colaborador que é necessariamente infringido por seus
Contribuição (ões) isoladamente ou por combinação de sua (s) Contribuição (ões)
com o Trabalho para o qual tal Contribuição (ões) foi submetida. Se vocês
instituir litígios de patentes contra qualquer entidade (incluindo um
reclamação cruzada ou reconvenção em uma ação judicial), alegando que o Trabalho
ou uma contribuição incorporada dentro do trabalho constitui
ou violação de patente por contribuição, então quaisquer licenças de patente
concedida a você sob esta licença para esse trabalho deve terminar
na data em que o litígio foi arquivado.
Redistribuição. Você pode reproduzir e distribuir cópias do
Trabalho ou Obras Derivadas do mesmo em qualquer meio, com ou sem
modificações, e na forma de Fonte ou Objeto, desde que Você
atender às seguintes condições:
(a) Você deve dar a quaisquer outros destinatários da Obra ou
Derivative Works uma cópia desta Licença; e
(b) Você deve fazer com que todos os arquivos modificados contenham avisos em destaque
informando que Você alterou os arquivos; e
(d) Se o Trabalho incluir um arquivo de texto “AVISO” como parte dele
distribuição, então quaisquer Obras Derivadas que Você distribuir devem
inclua uma cópia legível dos avisos de atribuição contidos
dentro de tal arquivo de AVISO, excluindo aqueles avisos que não
pertencem a qualquer parte das Obras Derivadas, em pelo menos uma
dos seguintes locais: em um arquivo de texto AVISO distribuído
como parte das Obras Derivadas; dentro do formulário de origem ou
documentação, se fornecida juntamente com as Obras Derivadas; ou,
dentro de uma exibição gerada pelas Obras Derivadas, se e
onde quer que tais avisos de terceiros normalmente apareçam. O conteúdo
do arquivo AVISO são apenas para fins informativos e
não modifique a Licença. Você pode adicionar sua própria atribuição
avisos em trabalhos derivados que você distribui, juntamente com
ou como um adendo ao texto do AVISO do Trabalho, desde que
que tais avisos de atribuição adicionais não podem ser interpretados
como modificação da Licença.
Você pode adicionar sua própria declaração de direitos autorais às suas modificações e
pode fornecer termos e condições de licença adicionais ou diferentes
para uso, reprodução ou distribuição de Suas modificações, ou
para quaisquer Obras Derivadas como um todo, desde que Você use,
reprodução e distribuição da Obra em conformidade com
as condições estabelecidas nesta Licença.
Envio de Contribuições. A menos que você declare explicitamente o contrário,
qualquer contribuição intencionalmente enviada para inclusão na Obra
por Você ao Licenciante deve estar sob os termos e condições de
esta Licença, sem quaisquer termos ou condições adicionais.
Não obstante o acima, nada aqui deve substituir ou modificar
os termos de qualquer contrato de licença separado que você possa ter executado
com o Licenciante em relação a tais Contribuições.
Marcas registradas. Esta Licença não concede permissão para usar o comércio
nomes, marcas registradas, marcas de serviço ou nomes de produtos do Licenciante,
exceto conforme necessário para uso razoável e habitual na descrição do
origem da Obra e reprodução do conteúdo do arquivo de AVISO.
Isenção de garantia. A menos que exigido pela lei aplicável ou
acordado por escrito, o Licenciante fornece o Trabalho (e cada
O Colaborador fornece suas Contribuições) “COMO ESTÁ”,
SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, sejam expressas ou
implícito, incluindo, sem limitação, quaisquer garantias ou condições
de TÍTULO, NÃO VIOLAÇÃO, COMERCIALIZAÇÃO ou ADEQUAÇÃO A
PROPÓSITO PARTICULAR. Você é o único responsável por determinar o
adequação de usar ou redistribuir o Trabalho e assumir qualquer
riscos associados ao seu exercício de permissões sob esta Licença.
Limitação de responsabilidade. Em nenhum caso e sob nenhuma teoria jurídica,
seja por ato ilícito (incluindo negligência), contrato ou de outra forma,
a menos que exigido pela lei aplicável (como deliberado e grosseiramente
atos negligentes) ou acordados por escrito, qualquer Colaborador será
responsável por você por danos, incluindo qualquer tipo direto, indireto, especial,
danos incidentais ou conseqüenciais de qualquer caráter que surjam como um
resultado desta Licença ou do uso ou incapacidade de usar o
Trabalho (incluindo, mas não se limitando a danos por perda de reputação,
paralisação do trabalho, falha ou mau funcionamento do computador, ou todo e qualquer
outros danos ou perdas comerciais), mesmo se tal Colaborador
foi avisado da possibilidade de tais danos.
Aceitando Garantia ou Responsabilidade Adicional. Ao redistribuir
o Trabalho ou Obras Derivadas do mesmo, Você pode optar por oferecer,
e cobrar uma taxa pela aceitação de suporte, garantia, indenização,
ou outras obrigações de responsabilidade e / ou direitos consistentes com este
Licença. No entanto, ao aceitar tais obrigações, você só pode agir
em seu próprio nome e por sua exclusiva responsabilidade, não em nome
de qualquer outro Colaborador, e somente se você concordar em indenizar,
defender e isentar de responsabilidade cada Colaborador por qualquer responsabilidade
incorridos por, ou reclamações apresentadas contra, tal Colaborador por motivo
de aceitar qualquer garantia ou responsabilidade adicional.
FIM DOS TERMOS E CONDIÇÕES
APÊNDICE: Como aplicar a Licença Apache ao seu trabalho.
Para aplicar a Licença Apache ao seu trabalho, anexe o seguinte
aviso padrão, com os campos entre colchetes "[]"
substituídos por suas próprias informações de identificação. (Não inclua
os colchetes!) O texto deve ser colocado no campo apropriado
sintaxe de comentário para o formato do arquivo. Também recomendamos que um
arquivo ou nome de classe e descrição do propósito a ser incluído no
mesma “página impressa” do aviso de direitos autorais para facilitar
identificação em arquivos de terceiros.
Copyright [aaaa] [nome do proprietário dos direitos autorais]
Licenciado sob a Licença Apache, Versão 2.0 (a “Licença”);
você não pode usar este arquivo, exceto em conformidade com a Licença.
Você pode obter uma cópia da Licença em
A menos que exigido pela lei aplicável ou acordado por escrito, o software
distribuído sob a Licença é distribuído “COMO ESTÁ”,
SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, expressas ou implícitas.
Consulte a Licença para obter o idioma específico que rege as permissões e
limitações sob a Licença.
Licença = contrato
Uma licença gratuita, embora seja gratuita, não permite permissividade e já demos exemplos de restrições. Escolha uma licença levando em consideração os seus interesses e os do usuário, pois o software de código aberto é projetado especificamente para ele. O usuário do projeto deve perceber a licença como uma espécie de acordo entre ele e o detentor dos direitos autorais, portanto, antes de realizar qualquer ação no código-fonte, estude cuidadosamente as restrições impostas a você pela licença do projeto.
Esperamos ter esclarecido o tema das licenças e, apesar da complexidade do assunto, ele não deve se tornar um obstáculo no seu caminho para o Open Source. Desenvolva o seu projeto e não se esqueça dos direitos, seus e dos outros.
Links úteis
Por fim, alguns recursos úteis que nos ajudaram na busca de informações sobre as licenças existentes e na seleção da mais adequada para nossos propósitos: