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:
- penggunaan tanpa biaya
- penggunaan dengan tidak ada pembatasan pada bagaimana, kapan, di mana, mengapa, atau oleh siapa yang menjalankannya
- akses ke kode sumber tanpa biaya
- Modifikasi source code
Sebagian besar perangkat lunak lebih menjamin - kemampuan siapa pun untuk membagikan sumber yang dimodifikasi apapun yang mereka memilih. Namun, tidak semua perangkat lunak yang dibundel memberikan kebebasan ini - GPL membatasi kemampuan pengembang yang ingin mengintegrasikan I2P dengan aplikasi mereka sendiri, yang bukan aplikasi open source. Sementara kami memuji tujuan mulia dalam meningkatkan sumber daya di commons, I2P paling baik dilayani dengan menghapus hambatan apapun yang menghalangi adopsi - jika pengembang mempertimbangkan apakah mereka dapat mengintegrasikan I2P dengan aplikasi mereka, mereka harus berhenti dan memeriksa dengan pengacara mereka, atau melakukan audit kode untuk memastikan sumber mereka sendiri dapat dirilis sebagai gpl-kompatibel, Kami 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
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.