Bagaimana javascript sisi klien dicakup oleh GPL?

29

Jika saya menggunakan perpustakaan Javascript berlisensi GPL dalam aplikasi web, apakah saya kemudian harus menawarkan kode sumber dari seluruh situs kepada siapa saja yang mengunduh dan mengeksekusi lib Javascript?

Armand
sumber
5
Ini pertanyaan yang sangat menarik. Biasanya aplikasi web tidak dicakup oleh GPL karena Anda tidak mendistribusikan kode (itulah sebabnya AGPL ada). Namun, dalam hal kode yang berjalan di browser, Anda semacam mendistribusikan kode. Jika itu benar, sifat GPL menyiratkan bahwa seluruh aplikasi web Anda harus dirilis di bawah GPL.
Scott Whitlock
5
@ David - pertanyaannya adalah apakah GPL memaksa Anda untuk melepaskan sisa aplikasi web Anda (seperti hal-hal sisi server) juga. Anda telah menggunakan perpustakaan Javascript untuk membuat karya turunan. GPL akan berlaku untuk seluruh hasil.
Scott Whitlock
1
@ Bersihkan jika jelas, saya tidak akan bertanya: p
Armand
1
@Alison, ah OK, maaf, saya salah mengerti pertanyaan lengkap itu. Tidak, sisi server tidak harus GPL. Selama koms antara klien dan server adalah beberapa format tidak seperti permintaan fungsional tingkat mesin, seperti XML, Anda tidak perlu khawatir. Hanya melayani kode GPL, baik itu HTML atau JS, tidak membuat kode sisi server mengirimkannya, atau berkomunikasi dengannya dalam format doa non-jauh, karya turunan.
David
1
Richard Stallman, penulis GPL, tentang masalah ini: gnu.org/philosophy/javascript-trap.html
Honza Pokorny

Jawaban:

5

Anda harus menawarkan JavaScript perpustakaan itu dan JavaScript aplikasi yang mengakses API perpustakaan itu (dan perpustakaan lain yang diakses aplikasi, yang juga perlu memiliki lisensi yang kompatibel dengan GPL).

Ingat, Anda harus menyediakan JavaScript yang dapat dibaca manusia, bukan versi yang dikupas spasi putih seperti yang biasanya diproduksi.

HTML yang memanggil JavaScript sudah tersedia, itu tidak benar-benar dihitung sebagai "menautkan" ke JavaScript itu dan ketersediaannya berarti orang tidak akan khawatir tentang hal itu.

David
sumber
3
Saya tidak berpikir menghubungkan adalah satu-satunya pemicu. Misalnya, jika program Anda bergantung pada aplikasi pembantu lain sedemikian rupa sehingga aplikasi Anda tidak dapat berfungsi tanpa pustaka lain, maka untuk keperluan GPL, itu semua adalah satu aplikasi. Saya pikir dalam hal ini, saya akan merekomendasikan berkonsultasi dengan pengacara.
Scott Whitlock
itu harus dapat dibaca manusia? Menarik. Saya akan menanyakan ini sebagai pertanyaan terpisah.
Armand
Itu harus tidak diubah, baik di GPL V2 dan V3. OK, itu mungkin bukan hal yang sama, saya menganggap manusia dapat ditulis == dapat dibaca manusia.
David
1
Diposting sebagai pertanyaan terpisah di sini: programmers.stackexchange.com/questions/62885/…
Armand
@ScottWhitlock Untuk keperluan hukum, itu hanya masalah jika satu merupakan turunan dari yang lain dari perspektif hak cipta, bukan apakah satu dapat berfungsi tanpa yang lain. Jika undang-undang hak cipta tidak berlaku, GPL (yang merupakan lisensi, bukan kontrak, jadi hanya dapat memberikan izin dan tidak mengambilnya) tidak berpengaruh. Akan sangat sulit untuk menunjukkan server dan klien mana dalam aplikasi web tipikal yang merupakan turunan dari yang lain, jika ada. Saya akan mengatakan itu lebih mungkin bahwa klien adalah turunan dari server, karena kebanyakan pengembang biasanya menulis server daripada klien, tapi itu jauh dari seragam.
Jules