Tehdit modelimizin gerektirdiği şekilde (diğer nedenlerle birlikte), I2P adını verdiğimiz anonim iletişim ağını desteklemek için geliştirilen yazılımın özgürce erişilebilir, açık kaynaklı ve kullanıcı tarafından değiştirilebilir olması gerekmektedir. Bu kriterleri karşılamak için, I2P çabasından yararlanmayı veya ona katkıda bulunmayı düşünenler için giriş engellerini olabildiğince kaldırmak amacıyla çeşitli yasal ve yazılım mühendisliği tekniklerinden faydalanıyoruz.
Aşağıdaki bilgiler basitçe “I2P BSD lisanslıdır”, “I2P GPL lisanslıdır” veya “I2P kamu malıdır” demekten daha kafa karıştırıcı olsa da, “I2P nasıl lisanslanmıştır?” sorusunun kısa cevabı şudur:
I2P dağıtımlarında paketlenmiş tüm yazılımlar şunlara izin verecektir:
- ücretsiz kullanım
- nasıl, ne zaman, nerede, neden veya kim tarafından çalıştırıldığına dair kısıtlama olmadan kullanım
- kaynak koduna ücretsiz erişim
- kaynak kodda değişiklik yapma
Yazılımların çoğu çok daha fazlasını garanti eder - herkesin değiştirilmiş kaynak kodunu istedikleri şekilde dağıtabilme yeteneği. Ancak, paket içinde gelen tüm yazılımlar bu özgürlüğü sağlamaz - GPL, I2P’yi kendi açık kaynak olmayan uygulamalarıyla entegre etmek isteyen geliştiricilerin yeteneklerini kısıtlar. Ortak kaynakları artırmanın asil hedeflerini desteklememize rağmen, I2P’nin benimsenmesinin önündeki engellerin kaldırılmasıyla en iyi şekilde hizmet görebileceğine inanıyoruz - I2P’yi uygulamalarıyla entegre edip edemeyeceklerini değerlendiren bir geliştiricinin durup avukatına danışması veya kendi kaynak kodunun GPL uyumlu olarak yayınlanabileceğinden emin olmak için kod denetimi yapması gerekiyorsa, kaybederiz.
Bileşen lisansları
I2P dağıtımı, kaynak kodun bileşenlere ayrılmasını yansıtan birkaç kaynak içerir. Her bileşenin kendi lisansı vardır ve ona katkıda bulunan tüm geliştiriciler bu lisansı kabul eder - ya o bileşenle uyumlu bir lisans altında işlenen kodun yayınlandığını açıkça beyan ederek ya da bileşenin birincil lisansı altında işlenen kodu örtük olarak yayınlayarak. Bu bileşenlerin her birinin, hangi lisansın bileşenin birincil lisansıyla uyumlu olduğuna son kararı veren bir baş geliştiricisi vardır ve I2P proje yöneticisi, hangi lisansların I2P dağıtımına dahil edilmek üzere yukarıdaki dört garantiyi karşıladığına son kararı verir.
| 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 İstisnası
Gereksiz olsa da, açıklık sağlamak adına I2PTunnel ve diğer uygulamalarda yer alan GPL lisanslı kodun, Java’nın standart kütüphanelerinin kullanımına açıkça izin veren ek bir “istisna” ile birlikte GPL altında yayınlanması gerekmektedir:
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.
Her bileşen altındaki tüm kaynak kodu, kodda aksi belirtilmedikçe varsayılan olarak birincil lisans altında lisanslanacaktır. Yukarıdakilerin tümü lisans koşullarının özetidir - yetkili koşullar için lütfen söz konusu bileşen veya kaynak kod için belirli lisansa bakın. Depo yeniden düzenlenirse bileşen kaynak konumları ve kaynak paketlemesi değiştirilebilir.
Web Sitesi Lisansı
Aksi belirtilmedikçe, bu sitedeki içerik Creative Commons Atıf-AynıLisanslaPaylaş 4.0 Uluslararası Lisansı altında lisanslanmıştır.
Commit Erişimi
Geliştiriciler, o depoyu yöneten kişiden izin aldıkları takdirde dağıtılmış bir git deposuna değişiklik gönderebilirler. Ayrıntılar için Yeni Geliştirici Kılavuzu bölümüne bakınız.
Ancak, değişikliklerin bir sürüme dahil edilebilmesi için geliştiricilerin sürüm yöneticisi (şu anda zzz) tarafından güvenilir bulunması gerekir. Ayrıca, güvenilir olmak için yukarıdaki şartları açıkça kabul etmeleri gerekir. Bu, sürüm yöneticilerinden birine aşağıdakileri onaylayan imzalı bir mesaj göndermeleri gerektiği anlamına gelir:
- Aksi belirtilmedikçe, commit ettiğim tüm kodlar örtük olarak bileşenin birincil lisansı altında lisanslanmıştır
- Kaynakta belirtilmişse, kod açıkça bileşenin alternatif lisanslarından biri altında lisanslanabilir
- Commit ettiğim kodu, commit ettiğim koşullar altında yayınlama hakkına sahibim
Yukarıdaki koşulların karşılanmadığı herhangi bir durumdan haberdar olan varsa, lütfen daha fazla bilgi için bileşen sorumlusu ve/veya bir I2P sürüm yöneticisi ile iletişime geçin.