---
authors:
  - 
    author: 'Warner Losh'
    email: imp@FreeBSD.org
title: 'Política de Licenciamento do FreeBSD'
trademarks: ["freebsd", "general"]
---

= Política de Licenciamento do FreeBSD
:doctype: article
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:source-highlighter: rouge
:experimental:

'''

toc::[]

[[intro]]

[[pref-license]]
== Licença Preferencial para Novos Arquivos

O restante desta seção tem como objetivo ajudá-lo a começar. Em caso de dúvida, pergunte. É muito mais fácil receber conselhos do que corrigir o código fonte. O Projeto FreeBSD usa tanto licenças explícitas (onde o texto literal da licença é reproduzido em cada arquivo) quanto licenças desvinculadas (onde uma etiqueta no arquivo especifica a licença, como descrito neste documento).

O Projeto FreeBSD usa este texto como licença preferencial:

[.programlisting]
....
/*-
 * Copyright (c) [year] [your name]
 *
 * SPDX-License-Identifier: BSD-2-Clause
 */
....

O projeto FreeBSD não permite o uso da "cláusula de publicidade" em novos códigos. Devido ao grande número de colaboradores do projeto FreeBSD, se tornou difícil para muitos fornecedores comerciais cumprir com esta cláusula. Se você tiver código no repositório com a cláusula de publicidade, considere mudar para uma licença sem ela. Novas contribuições ao FreeBSD devem usar a licença BSD-2-Clause.

O projeto FreeBSD desencoraja completamente novas licenças e variações das licenças padrão. Novas licenças requerem a aprovação do {core-email} para residir no repositório principal. No passado, licenças não padrão geraram mais problemas do que as padrão. Uma redação inadequada de licenças não padrão muitas vezes causa mais consequências não intencionais, então elas são improváveis de serem aprovadas pelo {core-email}. O projeto FreeBSD está padronizando na licença BSD-2-Clause, como publicada pelo SPDX.

Além disso, a política do projeto requer que o código licenciado sob algumas licenças não-BSD deve ser colocado em seções específicas do repositório. Para algumas licenças, a compilação deve ser condicional ou desativada por padrão. Por exemplo, o código na parte estática do kernel GENERIC deve ser licenciado sob a licença BSD ou substancialmente similar. O software licenciado sob GPL, APSL, CDDL, etc., não deve ser compilado no kernel GENERIC estático. No entanto, o código com essas licenças pode ser usado em módulos pré-compilados.

Os desenvolvedores são lembrados que, em código aberto, acertar a questão do "aberto" é tão importante quanto acertar a questão do "código fonte". O manuseio inadequado de propriedade intelectual tem consequências graves. Qualquer dúvida ou preocupação deve ser imediatamente levada ao conhecimento do {core-email}.

[[license-policy]]
== Política de Licença de Software

As seções seguintes detalham as Políticas de Licenciamento de Software do projeto. Em sua maior parte, esperamos que os desenvolvedores leiam, entendam e utilizem as seções acima desta para aplicar as licenças apropriadas às suas contribuições. O restante deste documento detalha o histórico filosófico das políticas, bem como as políticas em grande detalhe. Como sempre, se o texto abaixo for confuso ou se precisar de ajuda para aplicar essas políticas, entre em contato com {core-email}.

=== Princípios Orientadores

O Projeto FreeBSD tem como objetivo produzir um sistema operacional completo licenciado sob a licença BSD, permitindo que os usuários do sistema criem produtos derivados sem restrições ou obrigações adicionais de licença. Nós convidamos e apreciamos muito a contribuição de alterações e adições sob a licença BSD de duas cláusulas, e incentivamos a adoção desta licença por outros projetos de código aberto. O uso da licença BSD é fundamental para incentivar a adoção de tecnologia avançada de sistema operacional, e em muitas ocasiões notáveis foi decisivo para o uso generalizado de novas tecnologias.

No entanto, reconhecemos que existem razões importantes para permitir que softwares com licenças diferentes sejam incluídos no FreeBSD.

Nós exigimos que o software licenciado sob algumas licenças não-BSD seja cuidadosamente isolado na árvore de código fonte, de modo que não contamine os componentes BSD puros. Essa gestão cautelosa incentiva a clareza de licenciamento e facilita a criação de produtos derivados regidos exclusivamente pela licença BSD.

A menos que seja feita uma exceção especial, nenhum componente licenciado sob a licença BSD pode ser substituído por software com licença mais restritiva. Incentivamos os desenvolvedores do FreeBSD e de terceiros a buscar o re-licenciamento, o licenciamento duplo ou a reimplementação de componentes críticos sob a licença BSD. Isso facilitaria sua adoção mais integral no sistema operacional FreeBSD.

=== Política

* A importação de novo software licenciado sob qualquer licença que não seja a BSD e licenças semelhantes à BSD (conforme definido abaixo) requer a aprovação prévia do FreeBSD Core Team. As solicitações de importação devem incluir:
** Uma lista de recursos ou correções de bugs que a nova versão ou patches contêm, juntamente com evidências de que nossos usuários precisam desses recursos. PRs ou referências a discussões nas listas de discussão são formas ideais de evidência.
** Este processo deve ser utilizado para todas as importações de software, não apenas aquelas que exigem revisão do Core Team. A mera existência de uma nova versão não justifica a importação do software para o repositório do src ou do ports.
** Uma lista das branches do FreeBSD que podem ser afetadas. A expansão do escopo requer uma nova solicitação e aprovação do FreeBSD Core Team.

* A Licença Apache 2.0 é aceitável para uso em alguns casos. O Core Team deve aprovar a importação de novos componentes licenciados pela Licença Apache ou a mudança de licença de componentes existentes para a Licença Apache.
** Esta licença é aprovada para os seguintes componentes:
*** Conjunto de ferramentas LLVM e componentes de tempo de execução (com exceções LLVM).

* A Licença BSD+Patent é aceitável para uso em alguns casos. O Core Team deve aprovar a importação de novos componentes licenciados sob a Licença BSD+Patent ou a mudança da licença de componentes existentes para a Licença BSD+Patent.
** Esta licença é aprovada para os seguintes componentes:
*** Código derivado do EDK2 relacionado à funcionalidade UEFI

* A Licença Comum de Desenvolvimento e Distribuição (CDDL) é aceitável para uso em alguns casos. O Core Team deve aprovar a importação de novos componentes licenciados com a CDDL ou a alteração da licença de componentes existentes para a CDDL.
** Esta licença é aprovada para os seguintes componentes:
*** DTrace
*** Sistema de arquivos ZFS, incluindo suporte do kernel e utilitários do espaço do usuário

* Historicamente, a expressão "Todos os direitos reservados" era incluída em todos os avisos de direitos autorais. Todos os releases do BSD tinham essa expressão, para cumprir a https://en.wikipedia.org/wiki/Buenos_Aires_Convention[Convenção de Buenos Aires de 1910] nas Américas. Com a ratificação da https://en.wikipedia.org/wiki/Berne_Convention[Convenção de Berna] em 2000 pela Nicarágua, a Convenção de Buenos Aires - e a expressão - se tornaram obsoletas. Como tal, o projeto FreeBSD recomenda que os novos códigos omitam a frase e incentiva os detentores de direitos autorais existentes a removê-la. Em 2018, o projeto atualizou seus modelos para removê-la.
* Inicialmente, muitos itens no repositório do FreeBSD eram marcados com a licença BSD-2-Clause-FreeBSD. No entanto, o SPDX obsoletou a licença como uma variante; e o texto do SPDX da tag obsoleta difere o suficiente da licença padrão do FreeBSD para não ser usado. Uma revisão do uso atual está em andamento.

==== Licenças aceitáveis

As seguintes licenças são consideradas aceitáveis como Licenças BSD-Like para fins desta Política. Desvios ou o uso de qualquer outra licença devem ser aprovados pelo Core Team do FreeBSD:

* A versão de 2 cláusulas da licença BSD

[.programlisting]
....
/*-
 * Copyright (c) [year] [your name]
 *
 * SPDX-License-Identifier: BSD-2-Clause
 */
....
* A versão de 3 cláusulas da licença BSD

[.programlisting]
....
/*-
 * Copyright (c) [year] [your name]
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */
....
* A Licença ISC

[.programlisting]
....
/*-
 * Copyright (c) [year] [copyright holder]
 *
 * SPDX-License-Identifier: ISC
 */
....
* A licença do MIT

[.programlisting]
....
/*-
 * Copyright (c) [year] [copyright holders]
 *
 * SPDX-License-Identifier: MIT
 */
....
== A Licença de Coleção de Software

O Projeto FreeBSD licencia sua compilação de software conforme descrito em [.filename]#COPYRIGHT# sob a licença BSD-2-Clause. Essa licença não substitui a licença dos arquivos individuais, que é descrita abaixo. Arquivos que não possuem uma licença explícita são licenciados sob a licença BSD-2-Clause.

== Localização do arquivo de licença

Para cumprir com o padrão https://reuse.software/[REUSE Software] tanto quanto possível, todos os arquivos de licença serão armazenados no diretório [.filename]#LICENSES/# do repositório. Existem três subdiretórios neste diretório de nível superior. O subdiretório [.filename]#LICENSES/text/# contém, em forma destacada, o texto de todas as licenças permitidas na coleção de software do FreeBSD. Esses arquivos são armazenados usando o nome SPDX-License-Identifier seguido de .txt. O subdiretório [.filename]#LICENSES/exceptions/# contém o texto de todas as exceções permitidas em forma destacada na coleção de software do FreeBSD. Esses arquivos são armazenados usando o nome de identificador da exceção seguido de .txt. O subdiretório [.filename]#LICENSES/other/# contém, em forma destacada, os arquivos de licença referenciados em expressões SPDX-License-Identifier, mas que não são permitidos como licenças destacadas. Todos esses arquivos devem aparecer pelo menos uma vez na coleção de software do FreeBSD e devem ser removidos quando o último arquivo que os referenciar for removido. As licenças que não possuem uma correspondência adequada no SPDX devem estar em [.filename]#LICENSES/other/# e ter um nome de arquivo que comece com LicenseRef-, seguido por uma sequência de identificação exclusiva. Nenhum desses arquivos foi identificado atualmente, mas se forem, uma lista completa será apresentada aqui.

O Projeto FreeBSD atualmente não utiliza os arquivos `DEP5` descritos no padrão `REUSE Software`. O Projeto FreeBSD ainda não marcou todos os arquivos da árvore de acordo com este padrão, como descrito posteriormente neste documento. O Projeto FreeBSD ainda não incluiu esses arquivos em seus repositórios, uma vez que esta política ainda está em evolução.

[[individual-files]]
== Licença de Arquivos Individuais

Cada arquivo individual na coleção de software do FreeBSD possui seu próprio direito autoral e licença. A forma como eles são marcados varia e é descrita nesta seção.

Uma notificação de direitos autorais identifica quem reivindica os direitos autorais legais de um arquivo. Esses são fornecidos pelo projeto com o melhor esforço possível. Como os direitos autorais podem ser transferidos legalmente, o detentor atual dos direitos autorais pode ser diferente do que está listado no arquivo.

Uma licença é um documento legal entre o colaborador e os usuários do software concedendo permissão para usar as partes protegidas por direitos autorais do software, sujeito a certos termos e condições estabelecidos na licença. As licenças podem ser expressas de duas maneiras na coleção de software do FreeBSD. As licenças podem ser explícitas em um arquivo. Quando uma concessão de licença é explícita no arquivo, esse arquivo pode ser usado, copiado e modificado de acordo com essa licença. As licenças também podem ser expressas indiretamente, onde o texto da licença está em outro lugar. O projeto usa os identificadores de licença Software Package Data Exchange (SPDX) para essa finalidade, conforme descrito nas subseções a seguir. Os identificadores de licença SPDX são gerenciados pelo SPDX Workgroup da Linux Foundation e foram acordados por parceiros do setor, fornecedores de ferramentas e equipes jurídicas. Para obter mais informações, consulte https://spdx.org/ e as seções a seguir para saber como o Projeto FreeBSD os usa.

Entidades que contribuem com correções e melhorias para a coleção de software sem uma licença explícita concordam em licenciar essas mudanças sob os termos que se aplicam aos arquivo(s) modificados. A política do projeto, em linha com a prática da indústria, inclui apenas um aviso de direitos autorais dos contribuintes significativos para os arquivos na coleção.

Existem quatro tipos de arquivos na coleção de software do FreeBSD:

. Arquivos que possuem apenas um aviso explícito de direitos autorais e de licença.
. Arquivos que possuem tanto um aviso explícito de direitos autorais e de licença, quanto uma tag SPDX-License-Identifier.
. Arquivos que possuem apenas um aviso de direitos autorais e uma tag SPDX-License-Identifier, mas sem uma licença explícita.
. Arquivos que não possuem nenhum aviso de direitos autorais ou de licença.

=== Apenas Direitos Autorais e Licença

Muitos arquivos na coleção de software do FreeBSD possuem tanto um aviso de direitos autorais quanto uma licença explícita contida no arquivo. Nesses casos, a licença contida no arquivo é a que governa.

=== Direitos autorais e licença com a expressão SPDX-License-Identifier

Alguns arquivos na coleção de software do FreeBSD contêm uma declaração de direitos autorais, uma tag SPDX-License-Identifier e uma licença explícita. A licença explícita tem precedência sobre a tag SPDX-License-Identifier. A tag SPDX-License-Identifier é uma tentativa do projeto de caracterizar a licença da melhor forma possível, mas é apenas informativa para ferramentas automatizadas. Consulte <<expressions, Expressões SPDX-License-Identifier>> para saber como interpretar a expressão.

=== Apenas direitos autorais e a expressão SPDX-License-Identifier.

Alguns arquivos na árvore de software contêm licenças desanexadas. Esses arquivos contêm apenas um aviso de direitos autorais e uma expressão SPDX-License-Identifier, mas nenhuma licença explícita. Consulte <<expressions, Expressões SPDX-License-Identifier>> para saber como interpretar a expressão. Observação: as expressões permitidas para licenças desanexadas pelo projeto são um subconjunto das expressões usadas informativamente ou definidas pelo padrão.

A licença para arquivos que contêm apenas o SPDX-License-Identifier deve ser construida da seguinte forma

. Inicie a licença com o aviso de direitos autorais do arquivo, incluindo todos os detentores dos direitos autorais.
. Para cada sub-expressão, copie o texto da licença de [.filename]#LICENSE/text/`id`.txt#. Quando exceções estiverem presentes, anexe-as de [.filename]#src/share/license/exceptions/`id`.txt#. As expressões SPDX-License-Identifier devem ser interpretadas conforme descrito no padrão SPDX.

Onde o`id` é o identificador curto de licença SPDX da coluna `Identifier` de https://spdx.org/licenses/[SPDX Identifiers] ou da lista de https://spdx.org/licenses/exceptions-index.html[exceções de licença]. Se não houver um arquivo em [.filename]#LICENSE/#, então essa licença ou exceção não pode ser especificada como uma licença desanexada nesta seção.

Ao ler o texto da licença que está desanexado de um arquivo, algumas considerações devem ser tomadas para que a licença desanexada faça sentido.

. Qualquer referência a um aviso de direitos autorais deve se referir ao aviso de direitos autorais construído a partir do arquivo licenciado, e não de qualquer aviso de direitos autorais contido no próprio arquivo de texto da licença. Muitos arquivos SPDX têm exemplos de avisos de direitos autorais que são entendidos apenas como exemplos.
. Quando os nomes das entidades são mencionados no texto da licença, eles devem ser interpretados como se aplicando à lista de todos os detentores de direitos autorais listados nos avisos de direitos autorais do arquivo licenciado. Por exemplo, a licença BSD-4-clause contém a frase "Este produto inclui software desenvolvido pela organização". A frase 'a organização' deve ser substituída pelos detentores de direitos autorais.
. Quando o SPDX oferece variações da licença, entende-se que a licença no arquivo [.filename]#LICENSE/# representa a versão exata da licença selecionada. O padrão SPDX existe para corresponder a famílias de licenças e essas variações ajudam a corresponder a licenças semelhantes que a organização SPDX acredita serem legalmente idênticas.

Para licenças que possuem pequenas variações no texto, o SPDX possui diretrizes para correspondê-las. Essas diretrizes não são relevantes aqui. Os colaboradores que desejam licenciar sob uma variante de uma licença SPDX que não está contida textualmente em [.filename]#LICENSE/# não podem usar a opção desanexada e devem especificar explicitamente a licença.

=== Arquivos sem marcação de direitos autorais ou de licença

Alguns arquivos não podem ter comentários adequados adicionados a eles. Nesses casos, uma licença pode ser encontrada em [.filename]#file.ext.license#. Por exemplo, um arquivo chamado [.filename]#foo.jpg# pode ter uma licença em [.filename]#foo.jpg.license#, seguindo as convenções de software REUSE.

Arquivos criados pelo projeto que não possuem um aviso de direitos autorais são entendidos como estando sob o direito autoral e licenciamento geral em [.filename]#COPYRIGHT#. Ou o arquivo é uma mera citação de fatos, não protegíveis pela Lei de Direitos Autorais, ou o conteúdo é tão trivial que não justifica a sobrecarga de uma licença explícita.

Arquivos que não possuem marcação e possuem mais do que uma quantidade trivial de material protegido por direitos autorais, ou cujo autor acredita que estejam marcados incorretamente, devem ser trazidos à atenção do Core Team do FreeBSD. É uma forte política do Projeto FreeBSD cumprir todas as licenças apropriadas.

No futuro, todos esses arquivos serão marcados explicitamente ou seguirão a convenção de software REUSE [.filename]#.license#.

[[expressions]]
=== Expressões SPDX-License-Identifier

A "expressão de licença SPDX" é usada em dois contextos na coleção de software do FreeBSD. Em primeiro lugar, sua forma completa é usada para arquivos que possuem declarações explícitas de licença contidas no arquivo, bem como uma expressão resumida SPDX-License-Identifier. Nesse contexto, todo o poder dessas expressões pode ser usado. Em segundo lugar, em uma forma restrita descrita acima, é usada para denotar a licença real de um determinado arquivo. Nesse segundo contexto, apenas um subconjunto dessa expressão é permitido pelo projeto.

Uma "sub-expressão de licença SPDX" é um identificador de licença de forma curta SPDX da https://spdx.org/licenses/[Lista de Licenças SPDX], ou a combinação de dois identificadores de licença de forma curta SPDX separados por "WITH" quando uma https://spdx.org/licenses/exceptions-index.html[licença de exceção] se aplica. Quando várias licenças se aplicam, uma expressão consiste em palavras-chave "AND", "OR" que separam as sub-expressões e são cercadas por "(", ")". A https://spdx.github.io/spdx-spec/appendix-IV-SPDX-license-expressions/[especificação completa de expressões] explica todos os detalhes e tem precedência em caso de conflito com o tratamento simplificado desta seção.

Algumas identificações de licença, como a [L]GPL, têm a opção de usar apenas aquela versão ou qualquer versão posterior. O SPDX define o sufixo "-or-later" para significar aquela versão da licença ou uma versão posterior. Define "-only" para significar apenas aquela versão específica do arquivo. Existe uma convenção antiga de não ter um sufixo (o que significa o que o novo sufixo '-only' significa, mas que as pessoas confundem com '-or-later'). Além disso, adicionar um sufixo `+` significava `-or-later`. Novos arquivos no FreeBSD não devem usar essas duas convenções. Arquivos antigos que usam essa convenção devem ser convertidos conforme apropriado.

[.programlisting]
....
      // SPDX-License-Identifier: GPL-2.0-only
      // SPDX-License-Identifier: LGPL-2.1-or-later
....

"WITH" deve ser usado quando um modificador de licença é necessário. No projeto FreeBSD, vários arquivos do LLVM possuem uma exceção à licença Apache 2.0:

[.programlisting]
....
      // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
....

https://spdx.org/licenses/exceptions-index.html[Tags de exceção] são gerenciadas pelo SPDX. As exceções de licença só podem ser aplicadas a determinadas licenças, conforme especificado na exceção.

"OR" deve ser usado se o arquivo tiver uma escolha de licença e uma licença for selecionada. Por exemplo, alguns arquivos dtsi estão disponíveis sob licenças duplas:

[.programlisting]
....
      // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
....

"AND" deve ser usado se o arquivo tiver várias licenças cujos termos se aplicam ao uso do arquivo. Por exemplo, se o código foi incorporado por vários projetos, cada um com sua própria licença:

[.programlisting]
....
      // SPDX-License-Identifier: BSD-2-Clause AND MIT
....
