Conforme exigido pelo nosso modelo de ameaças (entre outras razões), o software desenvolvido para suportar a rede de comunicação anônima que chamamos de I2P deve estar livremente disponível, ser de código aberto e modificável pelo usuário. Para atender a esses critérios, fazemos uso de uma variedade de técnicas jurídicas e de engenharia de software para remover o maior número possível de barreiras de entrada para aqueles que consideram usar ou contribuir para o esforço do I2P.
Embora as informações abaixo possam ser mais confusas do que simplesmente afirmar “I2P é BSD”, “I2P é GPL” ou “I2P é domínio público”, a resposta curta para a pergunta “Como o I2P é licenciado?” é esta:
Todo o software incluído nas distribuições do I2P permitirá:
- usar sem taxa
- usar sem restrições sobre como, quando, onde, por que, ou por quem está sendo executado
- acesso ao código-fonte sem taxa
- modificações no código-fonte
A maioria do software garante muito mais - a capacidade de qualquer pessoa distribuir o código-fonte modificado da forma que escolher. No entanto, nem todo o software incluído no pacote oferece esta liberdade - a GPL restringe a capacidade de desenvolvedores que desejam integrar o I2P com suas próprias aplicações que não são, elas mesmas, aplicações de código aberto. Embora aplaudamos os nobres objetivos de aumentar os recursos comuns, o I2P é melhor servido ao remover quaisquer barreiras que impeçam sua adoção - se um desenvolvedor considerando se pode integrar o I2P com sua aplicação tem que parar e consultar seu advogado, ou conduzir uma auditoria de código para garantir que seu próprio código-fonte pode ser liberado como compatível com GPL, perdemos essa oportunidade.
Licenças de componentes
A distribuição I2P contém vários recursos, refletindo a divisão do código-fonte em componentes. Cada componente possui sua própria licença, com a qual todos os desenvolvedores que contribuem para ele concordam - seja declarando explicitamente a liberação do código submetido sob uma licença compatível com aquele componente, ou liberando implicitamente o código submetido sob a licença principal do componente. Cada um desses componentes tem um desenvolvedor líder que tem a palavra final sobre qual licença é compatível com a licença principal do componente, e o gerente do projeto I2P tem a palavra final sobre quais licenças atendem às quatro garantias mencionadas acima para inclusão na distribuição I2P.
| Component | Source path | Resource | Primary license | Alternate licenses | Lead developer |
|---|---|---|---|---|---|
| I2P SDK | core | i2p.jar | Public domain | BSD, Cryptix, MIT | zzz |
| I2P Router | router | router.jar | Public domain | BSD, Cryptix, MIT | zzz |
| Ministreaming | apps/ministreaming | mstreaming.jar | BSD | Public domain, Cryptix, MIT | zzz |
| Streaming | apps/streaming | streaming.jar | Public domain | BSD, Cryptix, MIT | zzz |
| I2PTunnel | apps/i2ptunnel | i2ptunnel.jar | GPL + exception | Public domain, BSD, Cryptix, MIT | zzz |
| Routerconsole | apps/routerconsole | routerconsole.war | Public domain | — | zzz |
| Address Book | apps/addressbook | addressbook.war | MIT | Public domain, Cryptix, BSD | — |
| Susidns | apps/susidns | susidns.war | GPL + exception | — | — |
| Susimail | apps/susimail | susimail.war | GPL + exception | — | — |
| I2PSnark | apps/i2psnark | i2psnark.jar | GPL + exception | — | zzz |
| [BOB](/docs/legacy/bob/) Bridge | apps/BOB | BOB.jar | WTFPL | — | sponge |
| [SAM](/docs/api/samv3/) Bridge | apps/sam | sam.jar | Public domain | Cryptix, BSD, MIT | zzz |
| [SAM v1](/docs/legacy/sam/) Perl library | apps/sam/perl | SAM.pm | GPL | Public domain, Cryptix, BSD, MIT | BrianR |
| [SAM v1](/docs/legacy/sam/) C library | apps/sam/c | libSAM | BSD | Public domain, Cryptix, MIT | Nightblade |
| [SAM v1](/docs/legacy/sam/) Python library | apps/sam/python | i2p.py | Public domain | BSD, Cryptix, MIT | Connelly |
| [SAM v1](/docs/legacy/sam/) C# library | apps/sam/csharp/ | n/a | Public domain | BSD, Cryptix, MIT | smeghead |
| Other apps not mentioned | apps/ | ... | Probably Public domain but check the source | — | — |
| Installer | installer | install.jar, guiinstall.jar | Public domain | GPL + exception, BSD, Cryptix, MIT | — |
Exceção GPL
Embora possa ser redundante, apenas para maior clareza, o código sob GPL incluído no I2PTunnel e outros aplicativos deve ser disponibilizado sob a GPL com uma “exceção” adicional autorizando explicitamente o uso das bibliotecas padrão do Java:
In addition, as a special exception, XXXX gives permission to link the
code of this program with the proprietary Java implementation provided by Sun
(or other vendors as well), and distribute linked combinations including the
two. You must obey the GNU General Public License in all respects for all of the
code used other than the proprietary Java implementation. If you modify this
file, you may extend this exception to your version of the file, but you are not
obligated to do so. If you do not wish to do so, delete this exception statement
from your version.
Todo o código-fonte sob cada componente será, por padrão, licenciado sob a licença primária, a menos que marcado de outra forma no código. Todo o exposto acima é um resumo dos termos de licença - por favor, consulte a licença específica para o componente ou código-fonte em questão para termos definitivos. As localizações do código-fonte dos componentes e o empacotamento de recursos podem ser alterados se o repositório for reorganizado.
Licença do Site
Exceto onde indicado o contrário, o conteúdo deste site está licenciado sob uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional .
Acesso de Commit
Os desenvolvedores podem enviar alterações para um repositório git distribuído se receberem permissão da pessoa que administra esse repositório. Consulte o Guia para Novos Desenvolvedores para mais detalhes.
No entanto, para que as alterações sejam incluídas numa versão, os desenvolvedores devem ser considerados de confiança pelo gestor de lançamento (atualmente zzz). Além disso, devem concordar explicitamente com os termos acima para serem considerados de confiança. Isso significa que devem enviar a um dos gestores de lançamento uma mensagem assinada afirmando que:
- A menos que marcado de outra forma, todo o código que eu envio está implicitamente licenciado sob a licença primária do componente
- Se especificado no código-fonte, o código pode ser explicitamente licenciado sob uma das licenças alternativas do componente
- Tenho o direito de liberar o código que envio sob os termos que estou enviando
Se alguém tiver conhecimento de qualquer situação em que as condições acima não sejam atendidas, por favor, entre em contato com o responsável do componente e/ou um gerente de lançamento do I2P com mais informações.