Como requiere nuestro modelo de amenaza (entre otras razones), el software desarrollado para soportar la red de comunicación anónima que llamamos I2P, debe ser accesible libremente, de código abierto, y modificable por el usuario. Para alcanzar estos criterios hacemos uso de una variedad de técnicas legales y de ingeniería de software, además eliminamos cuantas barreras de entrada haya para aquellos que consideren hacer uso de, o contribuír al esfuerzo de I2P.

Aunque la información de debajo puede ser más bien confusa que sencilla, estableciendo que "I2P es BSD", "I2P es GPL", o "I2P es dominio público", la respuesta corta a la pregunta "¿Cómo está licenciado I2P?" es esta:

Todo el software empaquetado en las distribuciones I2P permitirá:

  1. uso libre de cargo
  2. uso sin restricciones acerca de cómo, cuándo, dónde, por qué o por quién se está ejecutando.
  3. acceso al código fuente libre de cargo
  4. modificaciones del código fuente

La mayoría del software garantiza expresamente - la capacidad de cualquiera de distribuír el código fuente modificado de la manera que escoja. Sin embargo no todos los paquetes de software otorgan esta libertad - la GPL restringe la capacidad de los desarrolladores que deseen integrar I2P en sus propias aplicaciones si estas mismas no son aplicaciones de código abierto. Aunque aplaudimos las nobles metas de incrementar los recursos abiertos al público, se sirve mejor a I2P eliminando cualquier barrera que se encuentre en el camino de su adopción - si un desarrollador que considerando si puede o no integrar I2P con sus aplicaciones, tiene que parar a hacer comprobaciones con su abogado o realizar una aditoría para asegurarse de que su propio código puede ser liberado de forma compatible-con-GPL, lo estamos haciendo mal.

Licencias de componentes

La distribución I2P contiene varios recursos, que reflejan la fragmentación del código fuente en sus diferentes componentes. Cada componente tiene su propia licencia, que todos los desarrolladores que contribuyan con él tienen que aceptar - bien explícitamente declarando la versión del código consignada (`committed`) bajo una licencia compatible con ese componente, o implícitamente publicando el código consignado bajo la licencia primaria del componente. Cada uno de estos componentes tiene un desarrollador principal que tiene la última palabra acerca de si una licencia es compatible con la licencia primaria del compente, y el administrador del proyecto I2P tiene la última palabra acerca de qué licencias satisfacen las cuatro garantías anteriores para su inclusión en la distribución I2P.

Componente Ruta del código fuente Recurso Licencia primaria Licencias alternativas Desarrollador principal
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 + excepción java

Aunque puede ser redundante, y sólo para dejarlo claro, el código bajo GPL incluído con I2PTunnel y otras aplicaciones, debe ser publicado bajo la GPL con una "excepción" adicional explícita autorizando el uso de las librerías estándar de 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 código fuente bajo cada componente será licenciado por defecto bajo la licencia primaria, a menos que otra cosa esté establecida en el código. Todo lo anterior resume los términos de la licencia - por favor revise la licencia específica para el componente, o el código fuente en cuestión en busca de cláusulas autorizativas. Los emplazamientos de los recursos del código de los componentes y los paquetes podrían cambiar si el repositorio es reorganizado.

Contenido del sitio web

Creative Commons License

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

Privilegios de consignación (`commit`)

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.

Sin embargo, para poder incluír los cambios en una versión, los desarrolladores deben recibir confianza por parte del administrador de versiones (actualmente `zzz`). Además, deben aceptar explícitamente los téminos anteriores para recibir confianza. Eso significa que deben enviar a uno de los administradores de versiones un mensaje firmado afirmando que:

  • A menos que se establezca de otra manera, todo el código que yo consigne está implícitamente licenciado bajo la licencia primaria del componente.
  • Si se especifica en el código fuente, el código puede estar explícitamente licenciado bajo una de las licencias alternativas del componente.
  • Tengo derecho a publicar el código que consigne ('commit') bajo los términos con los que lo estoy consignando.

Si alguien advierte alguna instancia donde las condiciones anteriores no se cumplen, por favor contacte con el encargado del componente y/o con el administrador de versiones de I2P con información detallada. Vea los acuerdos de licencia del desarrollador.