Seperti yang disyaratkan oleh ancaman model kami (dan alasan-alasan lain), perangkat lunak yang dikembangkan untuk mendukung jaringan komunikasi anonim yang kita sebut I2P harus tersedia secara bebas, open source, dan dapat dimodifikasi oleh pengguna. Untuk memenuhi kriteria ini, kami membuat penggunaan berbagai hukum dan teknik rekayasa perangkat lunak untuk menghapus banyak hambatan bagi orang-orang mempertimbangkan menggunakan atau berkontribusi terhadap upaya I2P.

Sementara informasi di bawah ini mungkin lebih membingungkan daripada hanya menyatakan "I2P adalah BSD", "I2P adalah GPL", atau "I2P adalah domain publik", jawaban pendek dari pertanyaan "bagaimana I2P berlisensi?" adalah ini:

Semua perangkat lunak di I2P didistribusikan:

  1. penggunaan tanpa biaya
  2. penggunaan dengan tidak ada pembatasan pada bagaimana, kapan, di mana, mengapa, atau oleh siapa yang menjalankannya
  3. akses ke kode sumber tanpa biaya
  4. Modifikasi source code

Sebagian besar perangkat lunak menjamin lebih banyak - kemampuan siapa saja untuk mendistribusikan source code yang diubah Namun, tidak semua perangkat lunak yang dibundel memberikan kebebasan ini - GPL membatasi kemampuan pengembang yang ingin mengintegrasikan I2P dengan aplikasi mereka sendiri yang bukan open source. Meskipun kami menghargai tujuan mulia untuk meningkatkan sumber daya secara umum, I2P paling baik dilayani dengan menghilangkan hambatan yang menghalangi adopsi - jika pengembang mempertimbangkan apakah mereka harus berhenti mengintegrasikan I2P dengan aplikasinya dan memeriksa dengan pengacara mereka, atau melakukan audit kode untuk memastikan sumber mereka sendiri dapat dilepaskan sebagai GPL-compatible, kita kalah.

Lisensi komponen

Distribusi I2P berisi beberapa sumber daya, mencerminkan pembagian source code ke dalam komponen. Setiap komponen memiliki lisensi sendiri, yang semua pengembang yang berkontribusi setuju untuk itu - baik dengan secara eksplisit mendeklarasikan rilis berkomitmen dengan lisensi komponen tersebut, atau dengan secara implisit melepaskan kode yang berkomitmen dengan lisensi komponen yang utama. Masing-masing komponen ini memiliki pengembang utama yang berhak menentukan mengenai lisensi yang kompatibel dengan lisensi komponen utama, dan manajer proyek I2P memiliki wewenang mengenai lisensi apa yang memenuhi syarat untuk disertakan dalam distribusi I2P secara luas.

Komponen Source path Sumber daya Lisensi utama Lisensi alternatif Pengembang utama
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 exception

Walaupun mungkin berlebihan, hanya untuk kejelasan kode GPL' yang dimasukkan ke dalam I2PTunnel dan aplikasi lainnya, harus dirilis di bawah GPL dengan tambahan "pengecualian" yang secara tegas memberi kewenangan penggunaan Java library standar:

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.

Semua source code di bawah setiap komponen akan secara default dilisensikan di bawah lisensi utama, kecuali dijelaskan lain di dalam kode. Semua di atas adalah ringkasan dari ketentuan lisensi - silakan lihat lisensi tertentu untuk komponen atau source code yang bersangkutan untuk istilah yang otoritatif. Komponen lokasi sumber dan paket sumber daya dapat berubah jika repositori direorganisasi.

Konten situs web

Creative Commons License

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

Commit privileges

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.

Namun, untuk supaya perubahan disertakan dalam rilis, pengembang harus dipercaya oleh pengelola rilis (saat ini zzz). Selain itu, mereka harus secara eksplisit setuju dengan syarat-syarat di atas untuk dapat dipercaya. Itu berarti mereka harus mengirim salah satu manajer rilis, pesan yang ditandatangani untuk menegaskan bahwa:

  • Kecuali disebut lain, semua kode saya serahkan secara implisit berlisensi di bawah lisensi komponen utama
  • Jika ditentukan dalam sumber, kode dapat secara eksplisit dilisensikan di bawah salah satu komponen alternatif lisensi
  • Saya punya hak untuk melepaskan kode yang saya serahkan di bawah dalam persyaratan saya ikuti

Jika ada yang menyadari setiap contoh di mana kondisi di atas tidak terpenuhi, hubungi pimpinan komponen dan/atau I2P release manager untuk informasi lebih lanjut. Lihat perjanjian lisensi pengembang.