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á:
- uso libre de cargo
- uso sin restricciones acerca de cómo, cuándo, dónde, por qué o por quién se está ejecutando.
- acceso al código fuente libre de cargo
- 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
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.