Как того требует наша модель угроз (наряду с другими причинами), ПО, разработанное для поддержки анонимной сети связи, которую мы называем I2P, должно быть свободно доступно, с открытым исходным кодом и изменяемым пользователем. Чтобы соответствовать этим требованиям, мы используем множество правовых техник и техник инженерии ПО, чтобы устранить как можно больше барьеров для подключения тех, кто рассматривает возможность использовать или способствует развитию I2P.
Т.к. информация, представленная ниже, может быть более запутанной, чем простые утверждения "I2P это BSD", "I2P это GPL", или "I2P это публичный домен", то приведем короткий ответ на вопрос "Как лицензируется I2P?":
Все ПО, включенное в поставку I2P, позволяет:
- пользоваться бесплатно
- пользоваться без ограничений на то, как, когда, где, почему или кем оно запущено
- получать доступ к исходникам бесплатно
- изменять исходный код
Большинство приложений гарантирует гораздо больше - возможность любому распространять измененные исходники по его выбору. Тем не менее, не все включенное ПО предоставляет эту возможность - 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.
По умолчанию, весь исходный код каждого компонента лицензируется по главной лицензии, если иное не указано в коде. Все сказанное выше - суть условий лицензирования - в случае возникновения вопросов об особых условиях лицензирования, смотри лицензионные соглашения соответствующего исходного кода или компонента. В случае реорганизации хранилища расположение исходных кодов компонентов и пакетов может быть изменено.
Содержание веб-сайта
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 с этой информацией. Смотри лицензионное соглашение разработчиков.