Como escolher uma licença Open Source para uma estrutura RAD no GitHub

Neste artigo, falaremos um pouco sobre direitos autorais, mas principalmente sobre a escolha de uma licença gratuita para a estrutura IADV RAD . Framework e para produtos de código aberto baseados nele. Falaremos sobre a licença de licenciamento Apache 2.0 , o que nos levou a ela e as soluções que encontramos no processo.


O processo de escolha de uma licença consome bastante tempo e deve ser abordado por uma bem lida e, se você não é um feliz proprietário de um diploma em direito, verá um campo intocado de informações sobre várias licenças gratuitas. O principal a ser feito é elaborar uma série de critérios limitantes. No processo de discussão e reflexão, você e a equipe serão capazes de entender o que você deseja permitir aos usuários do seu produto e o que proibir. Quando você já tem uma certa descrição em suas mãos, precisa impor essa licença nas licenças existentes e selecionar aquela onde mais pontos coincidiram. Parece, é claro, simples, mas, na realidade, geralmente mesmo após a discussão, as questões permanecem.



Primeiro, um link para choosealicense.com , um site útil que usamos ativamente. Preste atenção especialmente na tabela de comparação de licenças por 13 critérios principais. Que inglês e paciência estejam com você.


Farinha de escolha


Vamos começar com os recursos comuns de licenças para software livre . O software de código aberto implica uma licença exclusivamente gratuita, que não limita a distribuição comercial e não comercial no modelo Open Core . Consequentemente, colocar o software sob uma licença gratuita na rede não pode limitar completamente sua transferência, distribuição e venda por terceiros, e você só precisa estar mentalmente preparado para isso.


Uma licença gratuita dá ao usuário o direito de participar do desenvolvimento reverso do software ou alterá-lo de outras maneiras disponíveis. A maioria das licenças não permite que você renomeie um produto ou faça manipulações com ele, alterando os direitos do autor e / ou proprietário do sistema.


As principais perguntas que nos interessavam sobre licenças gratuitas eram:


  1. As alterações feitas no software devem ser corrigidas e não têm nada a ver com o detentor dos direitos autorais do sistema?
  2. O nome do software derivado deve corresponder ao nome do software do detentor dos direitos autorais?
  3. É possível alterar a licença de novas versões para outra, incluindo a proprietária?

Depois de examinar cuidadosamente a lista das licenças mais comuns, selecionamos algumas que foram consideradas com mais detalhes. Licenças potenciais para IONDV. As estruturas foram: GNU GPLv3, Apache 2.0, MIT e MPL. O MIT foi quase imediatamente descartado, é uma licença permissiva sem copyleft que permite o uso, modificação e distribuição do código quase de qualquer maneira, mas não gostamos dessa opção, ainda queríamos que a licença regulasse o relacionamento entre o detentor dos direitos autorais e o usuário. A maioria dos não maiores projetos no GitHub é apresentada sob a licença MIT ou suas diversas variações. A licença em si é muito curta e as proibições são apenas uma indicação da autoria do criador do software.


O próximo foi o MPL 2.0 . Não confessamos imediatamente, mas, depois de estudá-lo em mais detalhes, eliminamos rapidamente, pois a principal desvantagem é que a licença é aplicada não a todo o projeto, mas a arquivos individuais. Além disso, se o usuário modificar o arquivo, ele não poderá alterar a licença. De fato, não importa o quão diligentemente você mude o projeto de código-fonte aberto, você não poderá monetizá-lo por causa dessa licença. Aliás, isso não se aplica ao detentor dos direitos autorais.


Um problema semelhante persiste com a licença GNU GPLv3 . Exige que qualquer arquivo permaneça abaixo dele. A GNU GPL é uma licença copyleft, que exige que os códigos-fonte dos trabalhos derivados sejam abertos e permaneçam sob a mesma licença. Ou seja: após reescrever duas linhas de código, você será forçado a confirmar suas alterações e salvar o código na GNU GPL com uso ou distribuição futura. Nesse caso, esse é o fator limitante para o usuário do nosso projeto, e não para nós. Porém, é proibido alterar a GPL para qualquer outra licença, mesmo dentro das versões da GPL. Por exemplo, se você alterar o LGPL (complemento sobre o GPL) para o GPL, não haverá como retornar ao LGPL. E este item foi decisivo na votação contra.


Em geral, nossa escolha foi inicialmente inclinada à GPL3 precisamente devido à distribuição do código modificado sob a mesma licença. Pensamos que dessa maneira 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. Ou seja, sempre é possível alterar a licença da Apache License v2.0 para GPL v3.0.


Apache 2.0


O Apache 2.0 é uma licença de licenciamento balanceada, com foco em direitos autorais. Aqui estão as respostas que ela deu às nossas perguntas. As alterações feitas no software devem ser corrigidas e não têm nada a ver com o detentor dos direitos autorais do sistema? Sim, todas as alterações devem ser documentadas e não somos responsáveis ​​pelo código fonte ou pelas alterações. O arquivo com as alterações deve ser aplicado ao código em que você fez essas alterações. O nome do software derivado deve corresponder ao nome do software do detentor dos direitos autorais? Sim, o software derivado deve aparecer com um nome diferente e com uma marca comercial diferente, mas com o detentor dos direitos autorais. É possível alterar a licença de novas versões para outra, incluindo a proprietária? Sim, pode ser liberado sob diferentes licenças, o Apache 2.0 não limita o uso de nenhuma licença comercial e não comercial.


Além disso, ao liberar novos produtos baseados no código-fonte aberto do Apache 2.0 ou produtos com funcionalidade adicional, não é necessário usar a mesma licença. Abaixo você pode ver a imagem com os termos e condições da licença Apache 2.0.



A licença requer a preservação e menção de direitos autorais e a licença sob a qual o software é emitido. A presença obrigatória de um aviso de direitos autorais com o nome do detentor dos direitos autorais e a 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á. Para isso, você também pode usar o arquivo AVISO e anexá-lo ao código fonte ou à documentação do projeto.


Lançamos todos os nossos produtos sob a licença Apache 2.0, exceto IONDV , no GitHub . Arquivo de guerra , cujo código fonte foi publicado em abril deste ano sob a licença GPLv3 no GitHub pelo Far Eastern Center for Social Technologies. No momento, além do próprio framework e de seus módulos , os aplicativos publicados no framework são publicados. Em um habr, já falamos sobre o Sistema de Gerenciamento de Projetos e sobre o Registro de Comunicação .


Tech. detalhes sobre a estrutura

IONDV. O Framework é um framework node.js de código aberto para a criação de aplicativos da Web baseados em metadados de alto nível, que não exigem habilidades de programação sérias.


A base da funcionalidade do aplicativo é o registro de dados - o módulo Register. Este é um módulo-chave projetado especificamente para trabalhar com dados baseados em estruturas de metadados - incluindo aqueles para gerenciar projetos, programas, eventos etc. O projeto também usa um módulo de portal para exibir modelos de dados arbitrários - implementa a frente do registro de arquivos compactados.


O MongoDb é usado para o DBMS - ele também armazena configurações de aplicativos, metadados e os próprios dados.


Como aplicar uma licença ao seu projeto?


Adicione o arquivo LICENSE com o texto da licença ao repositório do seu projeto e voilà, um projeto protegido pelo Apache 2.0. Você deve especificar o detentor dos direitos autorais, este é um aviso de direitos autorais. Você pode fazer isso no código-fonte ou no arquivo AVISO (um arquivo de texto que lista todas as bibliotecas licenciadas sob a licença Apache, juntamente com os nomes de seus criadores). O arquivo deve ser colocado no código fonte ou na documentação distribuída com o trabalho. Parece assim para nós:


Direitos autorais © 2018 LLC "ION DV".
Licenciado sob a licença Apache, versão 2.0

Texto de licença do Apache 2.0

Licença Apache
Versão 2.0, janeiro de 2004
http://www.apache.org/licenses/


TERMOS E CONDIÇÕES DE USO, REPRODUÇÃO E DISTRIBUIÇÃO


  1. 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 pelo
    o proprietário dos direitos autorais que está concedendo a licença.


    "Entidade jurídica" significa a união da entidade atuante e todos os
    outras entidades que controlam, são controladas ou estão sob comum
    controle com essa entidade. Para os fins desta definição,
    "controle" significa (i) o poder, direto ou indireto, de causar a
    direção ou administração de tal entidade, seja por contrato ou
    caso contrário, ou (ii) propriedade de 50% (cinquenta por cento) ou mais da
    ações em circulação ou (iii) propriedade benéfica dessa entidade.


    "Você" (ou "Seu") significa uma pessoa física ou jurídica
    exercer as permissões concedidas por esta Licença.


    "Fonte" significa a forma preferida para fazer modificações,
    incluindo, entre outros, código-fonte de software, documentação
    arquivos de origem e configuração.


    "Objeto", qualquer forma resultante de um processo mecânico
    transformação ou tradução de um formulário Fonte, incluindo mas
    não limitado ao código do objeto compilado, documentação gerada,
    e conversões para outros tipos de mídia.


    "Obra" significa a obra de autoria, seja na Fonte ou na
    Formulário de objeto, disponibilizado sob a Licença, conforme indicado por um
    aviso de direitos autorais incluído ou anexado ao trabalho
    (um exemplo é fornecido no apêndice abaixo).


    "Obras Derivadas" significa qualquer obra, seja na Fonte ou no Objeto
    formulário, baseado no (ou derivado) do Trabalho e para o qual o
    revisões editoriais, anotações, elaborações ou outras modificações
    representam, como um todo, uma obra original de autoria. Para os fins
    desta Licença, Obras Derivadas não incluirão obras que permanecem
    separável de, ou apenas vincular (ou vincular pelo nome) às interfaces de,
    o Trabalho e Obras Derivadas, portanto.


    "Contribuição" significa qualquer obra de autoria, incluindo
    a versão original da Obra e quaisquer modificações ou adições
    Obra ou Obra Derivada, portanto, intencionalmente
    enviado ao Licenciador para inclusão na Obra pelo proprietário dos direitos autorais
    ou por uma pessoa ou pessoa jurídica autorizada a enviar em nome de
    o proprietário dos direitos autorais. Para os fins desta definição, "enviado"
    significa qualquer forma de comunicação eletrônica, verbal ou escrita enviada
    ao Licenciante ou a seus representantes, incluindo mas não limitado a
    comunicação em listas de correio eletrônico, sistemas de controle de código-fonte,
    e emitir sistemas de rastreamento gerenciados ou em nome do
    Licenciante com o objetivo de discutir e melhorar o Trabalho, mas
    excluindo a comunicação que está conspicuamente marcada ou não
    designado por escrito pelo proprietário dos direitos autorais como "Não é uma contribuição".


    "Colaborador" significa o Licenciante e qualquer pessoa física ou jurídica
    em nome de quem uma Contribuição foi recebida pelo Licenciante e
    posteriormente incorporado ao Trabalho.


  2. Concessão de licença de direitos autorais. Sujeito aos termos e condições de
    Nesta Licença, cada Colaborador concede a Você um Contrato perpétuo,
    mundial, não exclusivo, sem custo, sem royalties, irrevogável
    direitos autorais para reproduzir, preparar Obras Derivadas,
    exibir publicamente, executar publicamente, sublicenciar e distribuir o
    Trabalho e Trabalhos Derivados na forma Origem ou Objeto.


  3. Concessão de licença de patente. Sujeito aos termos e condições de
    Nesta Licença, cada Colaborador concede a Você um Contrato perpétuo,
    mundial, não exclusivo, sem custo, sem royalties, irrevogável
    (exceto conforme declarado nesta seção) licença de patente para fazer, ter feito,
    usar, oferecer para vender, vender, importar e transferir o Trabalho,
    onde essa licença se aplique apenas àquelas reivindicações de patente licenciadas
    por um Colaborador que seja necessariamente violado por seus
    Contribuição (s) isoladamente ou por combinação de suas Contribuições
    com o Trabalho ao qual tais Contribuições foram submetidas. Se você
    instaurar um processo de patente contra qualquer entidade (incluindo um
    reivindicação cruzada ou reconvenção em uma ação judicial) alegando que o Trabalho
    ou uma Contribuição incorporada na Obra constitui direta
    ou violação de patente contributiva, qualquer licença de patente
    concedido a você sob esta licença para esse trabalho terminará
    a partir da data em que tal litígio é arquivado.


  4. Redistribuição. Você pode reproduzir e distribuir cópias do
    Obra ou Obras Derivadas, portanto, em qualquer meio, com ou sem
    modificações e no formulário Origem ou Objeto, desde que Você
    atenda às seguintes condições:


    (a) Você deve dar a qualquer outro destinatário da Obra ou
    Derivada Trabalha uma cópia desta Licença; e


    (b) Você deve fazer com que os arquivos modificados apresentem avisos importantes
    declarando que você alterou os arquivos; e


    © Você deve reter, na forma Fonte de quaisquer Obras Derivadas
    Você distribui todos os direitos autorais, patentes, marcas comerciais e
    avisos de atribuição do formulário Fonte da Obra,
    excluindo os avisos que não pertencem a nenhuma parte do
    as obras derivadas; e


    (d) Se a Obra incluir um arquivo de texto "AVISO" como parte de sua
    distribuição, quaisquer Trabalhos Derivativos que você distribuir devem
    incluir uma cópia legível dos avisos de atribuição contidos
    dentro desse arquivo AVISO, excluindo os avisos que não
    pertencem a qualquer parte das Obras Derivadas, em pelo menos um
    dos seguintes locais: em um arquivo de texto AVISO distribuído
    como parte dos Trabalhos Derivados; no formulário Origem ou
    documentação, se fornecida junto com as Obras Derivadas; ou
    em uma exibição gerada pelas Obras Derivadas, se e
    sempre que esses avisos de terceiros normalmente aparecerem. 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 nas Obras Derivadas que você distribui, juntamente com
    ou como um adendo ao texto AVISO do Trabalho, fornecido
    que esses avisos de atribuição adicionais não possam ser interpretados
    como modificar a licença.


    Você pode adicionar sua própria declaração de direitos autorais a suas modificações e
    pode fornecer termos e condições adicionais ou diferentes da licença
    para uso, reprodução ou distribuição de Suas modificações, ou
    para quaisquer Obras Derivadas como um todo, desde que Seu uso,
    reprodução e distribuição da Obra estão em conformidade com
    as condições estabelecidas nesta Licença.


  5. Envio de contribuições. A menos que você declare explicitamente o contrário,
    qualquer contribuição intencionalmente enviada para inclusão no Trabalho
    por Você ao Licenciante estará sob os termos e condições de
    esta Licença, sem quaisquer termos ou condições adicionais.
    Não obstante o acima exposto, nada descrito 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.


  6. Marcas comerciais. Esta licença não concede permissão para usar o comércio
    nomes, marcas comerciais, marcas de serviço ou nomes de produtos do Licenciador,
    exceto conforme exigido para uso razoável e costumeiro na descrição do
    origem do trabalho e reprodução do conteúdo do arquivo AVISO.


  7. Isenção de Garantia. A menos que exigido pela lei aplicável ou
    acordado por escrito, o Licenciante fornece a Obra (e cada
    O Colaborador fornece suas contribuições) com base no "COMO ESTÁ",
    SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, expressas ou
    implícita, incluindo, sem limitação, quaisquer garantias ou condições
    TÍTULO, NÃO INFRAÇÃO, COMERCIALIZAÇÃO OU ADEQUAÇÃO A UM
    OBJETIVO ESPECÍFICO. Você é o único responsável por determinar o
    adequação do uso ou redistribuição da Obra e assumir qualquer
    riscos associados ao seu exercício de permissões sob esta Licença.


  8. Limitação de responsabilidade. Em nenhum caso e sob nenhuma teoria jurídica,
    seja em delito (incluindo negligência), contrato ou de outra forma,
    a menos que exigido pela lei aplicável (como deliberada e grosseiramente
    atos negligentes) ou acordado por escrito, qualquer Colaborador será
    responsável por danos, incluindo quaisquer danos diretos, indiretos, especiais,
    danos incidentais ou conseqüenciais de qualquer caráter que surjam como
    resultado desta Licença ou fora do uso ou incapacidade de usar o
    Trabalho (incluindo, entre outros, danos por perda de ágio,
    interrupção do trabalho, falha ou mau funcionamento do computador ou todo e qualquer
    outros danos ou perdas comerciais), mesmo que esse Colaborador
    foi avisado da possibilidade de tais danos.


  9. Aceitando garantia ou responsabilidade adicional. Enquanto redistribui
    Trabalho ou Obras Derivadas, Você pode optar por oferecer,
    e cobrar uma taxa pela aceitação do 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ê pode agir apenas
    em seu próprio nome e sob sua exclusiva responsabilidade, não em nome
    de qualquer outro Colaborador e somente se você concordar em indenizar,
    defender e isentar cada Colaborador de qualquer responsabilidade
    incorridos ou reivindicações contra esse Contribuidor 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ído por suas próprias informações de identificação. (Não inclua
    entre parênteses!) O texto deve ser incluído no
    sintaxe de comentário para o formato do arquivo. Também recomendamos que um
    nome do arquivo ou da classe e descrição da finalidade
    mesma "página impressa" que o 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


    http://www.apache.org/licenses/LICENSE-2.0


    A menos que exigido pela lei aplicável ou acordado por escrito, o software
    distribuído sob a Licença é distribuído em uma "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 gratuita, não permite permissividade e já fornecemos exemplos de restrições. Escolha uma licença levando em consideração seus interesses e o usuário, porque o software de código aberto foi projetado especificamente para ele. O usuário do projeto deve perceber a licença como um tipo de contrato entre ele e o detentor dos direitos autorais. Portanto, antes de executar qualquer ação no código fonte, estude cuidadosamente as restrições impostas a você pela licença do projeto.


Esperamos lançar alguma luz sobre o tópico das licenças e, apesar da complexidade do problema, isso não deve se tornar um obstáculo ao seu caminho para o Código Aberto. Desenvolva seu projeto e não se esqueça dos direitos, seus e de outros.


Links úteis


Por fim, alguns recursos úteis que nos ajudaram a encontrar informações sobre licenças existentes e selecionar as mais adequadas para nossos propósitos:


Source: https://habr.com/ru/post/pt459732/


All Articles