Как того требует наша модель угроз (наряду с другими причинами), ПО, разработанное для поддержки анонимной сети связи, которую мы называем I2P, должно быть свободно доступно, с открытым исходным кодом и изменяемым пользователем. Чтобы соответствовать этим требованиям, мы используем множество правовых техник и техник инженерии ПО, чтобы устранить как можно больше барьеров для подключения тех, кто рассматривает возможность использовать или способствует развитию I2P.

Т.к. информация, представленная ниже, может быть более запутанной, чем простые утверждения "I2P это BSD", "I2P это GPL", или "I2P это публичный домен", то приведем короткий ответ на вопрос "Как лицензируется I2P?":

Все ПО, включенное в поставку I2P, позволяет:

  1. пользоваться бесплатно
  2. пользоваться без ограничений на то, как, когда, где, почему или кем оно запущено
  3. получать доступ к исходникам бесплатно
  4. изменять исходный код

Большинство приложений гарантирует гораздо больше - возможность любому распространять измененные исходники по его выбору. Тем не менее, не все включенное ПО предоставляет эту возможность - GPL ограничивает возможность разработчиков, желающих интегрировать I2P с их собственными приложениями, которые сами не являются приложениями с открытым исходным кодом. В то время как мы в общем-то приветствуем благородные цели увеличения ресурсов, I2P будет лучше без любых ограничений, которые стоят на пути его принятия - если разработчик будет рассматривать возможность интеграции I2P со своим приложением, он должен посоветоваться со своим адвокатом, или провести аудит кода, чтобы быть уверенным, что его код может быть выпущен под лицензией GPL, мы от этого проигрываем.

Лицензии компонентов

Поставка I2P содержит несколько ресурсов, отражающих разделение исходного кода на компоненты. У каждого компонента своя лицензия, с которой соглашаются все его разработчики - либо непосредственно объявляя об этом при релизе исходного кода, зафиксированного под лицензией, совместимой с этим компонентом, либо опосредованно при релизе исходного кода, зафиксированного под главной лицензией компонента. У каждого из этих компонентов есть главный разработчик, который говорит, совместима ли лицензия с главной лицензией компонента, и менеджер проекта I2P, который говорит, подходит ли лицензия ко всем четырем требованиям для включения в поставку I2P.

Компонент Исходный путь Ресурс Главная лицензия Альтернативная лицензия Главные разработчик
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 Bridge apps/BOB BOB.jar WTFPL   sponge
SAM Bridge apps/sam sam.jar Public domain Cryptix
BSD
MIT
zzz
SAM v1 Perl library apps/sam/perl SAM.pm GPL Public domain
Cryptix
BSD
MIT
BrianR
SAM v1 C library apps/sam/c libSAM BSD Public domain
Cryptix
MIT
Nightblade
SAM v1 Python library apps/sam/python i2p.py Public domain BSD
Cryptix
MIT
Connelly
SAM v1 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
 

Исключение для GPL + Java

Несмотря на то, что это может быть избыточным, просто чтобы внести ясность в код под GPL, включенный в I2PTunnel и другие приложения должны быть предоставлены под GPL с дополнительным "исключением", непосредственно дающим право использовать стандартные библиотеки 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.

По умолчанию, весь исходный код каждого компонента лицензируется по главной лицензии, если иное не указано в коде. Все сказанное выше - суть условий лицензирования - в случае возникновения вопросов об особых условиях лицензирования, смотри лицензионные соглашения соответствующего исходного кода или компонента. В случае реорганизации хранилища расположение исходных кодов компонентов и пакетов может быть изменено.

Содержание веб-сайта

Creative Commons License

Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Привилегии фиксирования

Developers may push changes to a distributed git repository if you receive permission from the person running that repository. See the Git Page for details.

Тем не менее, чтобы изменения были включены в релиз, разработчики должны быть одобрены релиз-менеджером (сейчас это zzz). Кроме того, для одобрения они должны явно согласиться с условиями, описанными выше. Это означает, что они должны отправить одному из релиз-менеджеров подписанное сообщение, подтверждая что:

  • Если не указано иное, весь код, что я фиксирую, явно лицензируется главной лицензией компонента
  • Если указано в исходном коде, код может быть опосредованно лицензирован одной из альтернативных лицензий компонента
  • У меня есть право выпускать код, который я фиксирую, в соответствии с условиями, на которых я это делаю

Если кому-либо известно о каких-либо случаях, когда указанные выше условия не будут выполнены, просьба обратиться к главному разработчику компонента и/или к релиз-менеджеру I2P с этой информацией. Смотри лицензионное соглашение разработчиков.