Как того требует наша модель угроз (среди прочих причин), программное обеспечение, разработанное для поддержки сети анонимных коммуникаций, которую мы называем I2P, должно быть свободно доступным, с открытым исходным кодом и возможностью модификации пользователями. Чтобы соответствовать этим критериям, мы используем различные юридические и программные методы для устранения максимального количества барьеров на пути тех, кто рассматривает возможность использования I2P или внесения вклада в проект I2P.
Хотя информация ниже может показаться более запутанной, чем просто утверждение “I2P использует лицензию BSD”, “I2P использует лицензию GPL” или “I2P находится в общественном достоянии”, краткий ответ на вопрос “Какая лицензия у I2P?” следующий:
Все программное обеспечение, входящее в состав дистрибутивов I2P, позволяет:
- использование без платы
- использование без ограничений на то, как, когда, где, почему или кем оно запускается
- доступ к исходному коду без платы
- модификации исходного кода
Большинство программного обеспечения гарантирует гораздо больше - возможность любому распространять модифицированный исходный код по своему усмотрению. Однако не все программное обеспечение в комплекте предоставляет такую свободу - GPL ограничивает возможности разработчиков, желающих интегрировать I2P со своими приложениями, которые сами не являются приложениями с открытым исходным кодом. Хотя мы приветствуем благородные цели увеличения ресурсов в общем достоянии, I2P лучше всего служит устранение любых барьеров, стоящих на пути его внедрения - если разработчик, рассматривающий возможность интеграции I2P со своим приложением, должен остановиться и проконсультироваться со своим юристом или провести аудит кода, чтобы убедиться, что их собственный исходный код может быть выпущен как совместимый с GPL, мы теряем возможности.
Лицензии компонентов
Дистрибутив I2P содержит несколько ресурсов, отражающих разделение исходного кода на компоненты. Каждый компонент имеет свою собственную лицензию, с которой соглашаются все разработчики, вносящие в него вклад — либо путём явного объявления о выпуске кода под лицензией, совместимой с этим компонентом, либо путём неявного выпуска кода под основной лицензией компонента. У каждого из этих компонентов есть ведущий разработчик, который принимает окончательное решение о том, какая лицензия совместима с основной лицензией компонента, а менеджер проекта I2P принимает окончательное решение о том, какие лицензии соответствуют вышеуказанным четырём гарантиям для включения в дистрибутив 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 | — |
Исключение GPL
Хотя это может быть избыточным, для ясности код под 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 Attribution-ShareAlike 4.0 International License .
Доступ к коммитам
Разработчики могут отправлять изменения в распределенный git-репозиторий, если получат разрешение от лица, управляющего этим репозиторием. Подробности смотрите в Руководстве для новых разработчиков .
Однако, чтобы изменения были включены в релиз, разработчики должны быть доверенными лицами у менеджера релизов (в настоящее время zzz). Кроме того, они должны явно согласиться с вышеуказанными условиями, чтобы получить доверие. Это означает, что они должны отправить одному из менеджеров релизов подписанное сообщение, подтверждающее, что:
- Если не указано иное, весь код, который я отправляю, неявно лицензируется в соответствии с основной лицензией компонента
- Если указано в исходном коде, код может быть явно лицензирован в соответствии с одной из альтернативных лицензий компонента
- Я имею право выпускать код, который я отправляю, на условиях, под которыми я его отправляю
Если кому-либо известны случаи, когда вышеуказанные условия не выполняются, пожалуйста, свяжитесь с руководителем компонента и/или менеджером релизов I2P для предоставления дополнительной информации.