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.

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

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:

  1. As alterações feitas no software devem ser registradas e não ter relação com o detentor dos direitos autorais do sistema?
  2. O nome do software derivado não deveria ser igual ao nome do software do detentor dos direitos autorais?
  3. É 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.

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

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.

Lançamos todos os nossos produtos disponíveis publicamente no GitHub sob a licença Apache 2.0, exceto IONDV. Arquivo de guerra, cujo código-fonte foi publicado sob a licença GPLv3 no GitHub em abril deste ano pelo Far Eastern Center for Social Technologies. Neste momento, além do estrutura e módulos publicado Aplicativos feito na estrutura. No hub já falamos Sistema de gerenciamento de projetos e sobre Registro de comunicações.

Aqueles. detalhes sobre a estrutura

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:

Direitos autorais © 2018 ION DV LLC.
Licenciado sob a Licença Apache, Versão 2.0

Texto da 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 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.

  2. 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.

  3. 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.

  4. 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

    © Você deve reter, na forma de origem de quaisquer Obras Derivadas
    que você distribui, todos os direitos autorais, patentes, marcas registradas e
    avisos de atribuição da forma de origem da obra,
    excluindo os avisos que não pertencem a qualquer parte do
    as Obras Derivadas; 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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

    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 “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:

Fonte: habr.com

Adicionar um comentário