Saya merancang perangkat lunak sebagai proyek layanan yang hanya akan diakses secara online. Saya mungkin memiliki ketergantungan yang keras pada executable yang dicakup oleh GNU GPL (v2 atau yang lebih baru).
Saya mengerti bahwa kode saya, jika saya ingin mendistribusikannya, harus didistribusikan di bawah ketentuan GPL juga. Saya cukup yakin bahwa menjalankan layanan melalui jaringan tidak menyampaikan / mendistribusikan kode. Jadi, apakah saya benar dalam berpikir bahwa saya dapat menggunakan ketergantungan GPL tanpa harus mengungkapkan semua kode saya?
Supaya saya dapat memberikan contoh konkret: Katakanlah saya sedang mendesain sistem pemrosesan dokumen online, seperti Google Docs. Saya ingin dapat mengunggah pada dasarnya semua jenis file ke dalam sistem dan membuatnya dapat dikonversi ke format internal apa pun. Alih-alih mencoba mencoret konverter, saya lebih suka menggunakan program yang ada yang saya tahu yang memungkinkan untuk konversi. Program ini dapat dieksekusi dengan lisensi GNU GPL v2 (atau lebih baru). Bisakah saya memiliki perangkat lunak sebagai layanan secara legal tanpa memberikan kode sumber?
sumber
Jawaban:
Dari deskripsi yang Anda berikan, jawabannya adalah "tidak, Anda tidak perlu mengungkapkan." Anda mengandalkan output dari executable GPL atau Anda memperlakukannya sebagai suatu sistem, yang merupakan dua pengecualian untuk sifat viral dari GPL. Gali ke dalam FAQ GPL dan Anda akan menemukan jawaban Anda berdasarkan spesifikasi skenario Anda.
sumber
IANAL tetapi IMO GPL memang memiliki sedikit ambiguitas di sini (atau interpretasi). GPL memberi Anda banyak kebebasan ketika datang ke "penggunaan", tetapi ia banyak membatasi "distribusi karya turunan". Pertama tentang penggunaan vs karya turunan. Jika kode Anda hanya "menggunakan" perangkat lunak GPL, Anda tidak perlu mendistribusikan kode Anda yang menggunakan kode GPL (jika Anda memodifikasi kode GPL itu sendiri, Anda masih harus mendistribusikan bagian dari diri Anda yang berencana mendistribusikan perubahan), di sisi lain jika itu dianggap karya turunan, maka Anda harus mendistribusikan kode sumber Anda. Salah satu poin utama adalah apakah kode Anda berjalan di ruang alamat proses yang sama dengan kode GPL,
Ada juga ambiguitas apakah menyediakan layanan web untuk memungkinkan orang menggunakan kode GPL dianggap mendistribusikan kembali perangkat lunak atau hanya cara menggunakan perangkat lunak. Saya pikir kebanyakan orang menganggap bahwa hanya menyediakan layanan web tidak termasuk redistribusi.
Terbaik untuk bertanya kepada pembuat perangkat lunak apa pendapat mereka tentang apa yang Anda lakukan. Yang terbaik adalah menghargai interpretasi mereka daripada melanjutkan interpretasi Anda sendiri. Paling buruk jika itu menjadi masalah, Anda bisa berargumen bahwa Anda memiliki izin eksplisit dari penulis sendiri atau Anda akan memiliki kesempatan untuk menemukan perpustakaan lain yang lebih permisif atau menegosiasikan pengecualian.
sumber
GPL gives you a lot of freedom when it comes to "usage", but it does it lots of limitation concerning "distribution of derivative works"
. Sementara bagian dari GPL itu cukup lurus ke depan, dalam GPLv2, terbuka untuk interpretasi apakah SaaS adalah "penggunaan" atau "distribusi". GPLv2 tidak mengatakan apa-apa tentang SaaS karena dirancang sebelum SaaS adalah hal biasa, oleh karena itu ambiguitasnya.