AGPL - apa yang bisa Anda lakukan dan apa yang tidak bisa Anda lakukan

188

AGPL adalah lisensi yang cukup baru yang dimaksudkan untuk menggunakan jaringan GPL. Namun, tidak menjadi pengacara, dan sebenarnya tidak membaca seluruh lisensi, saya tidak bisa mengerti apa yang sebenarnya dapat Anda lakukan secara bebas dan apa yang tidak dengan AGPL.

Ketidakpastian saya diumpankan oleh posting ini tentang MongoDB (yang merupakan AGPL) dan bahkan lebih banyak lagi dengan komentar di bawah ini.

Jika kami mengikuti komentar, ternyata Anda dapat menggunakan pustaka AGPL dengan perangkat lunak sisi server komersial sumber tertutup, selama Anda tidak memodifikasi pustaka. Apakah itu masalahnya? Atau Anda harus mendistribusikan seluruh aplikasi saat menggunakan perpustakaan berlisensi AGPL?

Kasus dengan MongoDB adalah bahwa ia menggunakan lisensi Apache untuk kode klien, yang menimbulkan pertanyaan lain. Apa yang terjadi jika Anda menggunakan perangkat lunak AGPL, tetapi menggunakannya sebagai aplikasi berbeda dari yang sumber komersialnya ditutup? Misalnya, ambil iText - ini adalah pustaka AGPL:

  • jika Anda menggunakannya dan memodifikasinya, apakah Anda harus membuka sumber seluruh aplikasi Anda atau Anda harus mendistribusikan ulang hanya perubahan di iText?
  • jika Anda menggunakannya dan tidak memodifikasinya, apakah Anda harus membuka sumber seluruh aplikasi Anda?
  • Jika Anda membungkus iText dalam aplikasi lain yang Anda mulai sebagai proses yang terpisah, tetapi menggunakannya dari aplikasi utama Anda, haruskah Anda membuka semua sumber, atau hanya aplikasi pembungkus? (Aplikasi pembungkus akan menjadi API berbasis HTTP yang akan mengambil file pdf dan akan mengembalikan hasil menggunakan iText sebagai JSON). Bisakah ini digunakan untuk menghindari lisensi AGPL?

Catatan: Pertanyaannya adalah tentang AGPLv3

Bozho
sumber
1
Lihat juga jawaban terkait ini: opensource.stackexchange.com/questions/5003/...
Philippe Ombredanne

Jawaban:

40

AGPL didasarkan pada GPL, bukan LGPL. Itu tidak mengandung pengecualian yang menghubungkan, dan pekerjaan apa pun yang menggunakan kode AGPL (ditautkan atau diubah, dimodifikasi atau tidak) juga harus berlisensi dan didistribusikan AGPL.

Menggunakan proses terpisah dapat menghindari (A) GPL, tetapi ini adalah tanah yang keruh. Jika aplikasi akhir Anda bergantung pada proses eksternal, sehingga tidak akan berfungsi dengan baik tanpa itu, maka itu akan dianggap sebagai karya turunan dari perangkat lunak AGPL.

Dalam kebanyakan kasus di mana orang menggunakan aplikasi GPL terpisah dalam program sumber tertutup, mereka menyediakan pekerjaan GPL sebagai ekstensi opsional, atau alternatif back-end untuk beberapa bagian kode lainnya dll.

Pekerjaan (A) GPL tidak dapat didistribusikan di samping aplikasi akhir bahkan sebagai aplikasi terpisah (misalnya, memasukkannya ke dalam arsip atau repositori yang sama), meskipun tidak masalah untuk memberikan petunjuk tentang di mana menemukan pekerjaan GPL dan bagaimana menggunakannya dengan aplikasi Anda.

Markus H
sumber
9
Sementara apa yang Anda katakan adalah benar, satu-satunya perbedaan antara GPL dan AGPL adalah persyaratan untuk memasok kode jika digunakan secara interaktif melalui jaringan. Namun, klausa yang mencakup hal ini menyatakan bahwa itu hanya berlaku untuk "Versi modifikasi" dari karya, dan "versi modifikasi" didefinisikan sebagai segala penggunaan yang memerlukan hak cipta. Hanya menjalankan versi yang tidak dimodifikasi tidak akan membuat "versi modifikasi", karena hak cipta hanya mencakup distribusi.
Erik Funkenbusch
8
1. "ditautkan atau sebaliknya" salah. 2. "itu akan dianggap sebagai karya turunan" salah 3. Saya pikir "Dalam kebanyakan kasus" salah. 4. "Pekerjaan (A) GPL tidak dapat didistribusikan di samping aplikasi akhir bahkan sebagai aplikasi terpisah" benar-benar salah, misalnya Debian mendistribusikan barang-barang dengan semua jenis lisensi yang berbeda secara bersamaan, tidak semuanya kompatibel dengan GPL. Sistem kepemilikan juga dapat melakukan ini. Lihatlah bagian 3 dari halaman ini, mulai dari "Pertanyaan telah muncul": ghostscript.com/doc/current/Commprod.htm Jangan membaca sisanya, itu mencoba menipu Anda untuk membelinya.
Sam Watkins
Debian sebenarnya memiliki 3 repositori terpisah karena lisensi. mainterdiri dari paket-paket yang memenuhi persyaratan DFSG , yang tidak bergantung pada perangkat lunak di luar area ini untuk beroperasi. Ini adalah satu-satunya paket yang dianggap bagian dari distribusi Debian . contribpaket-paket berisi perangkat lunak yang sesuai dengan DFSG , tetapi memiliki dependensi yang tidak utama (kemungkinan dikemas untuk Debian tidak bebas). non-freeberisi perangkat lunak yang tidak sesuai dengan DFSG .
Kevin Brey 3-15
Re: "tidak dapat didistribusikan bersama" - dapatkah Anda menunjukkan dukungan ketentuan lisensi khusus itu? Saya benar-benar mengerti mengapa Anda tidak ingin mengirimkan kode berlisensi AGPL dalam produk konsumen, tapi itu keadaan yang cukup sempit.
Charles Duffy
1
Seperti ... wat ... jadi sekarang semua ponsel Android dengan kernel Linux mereka ilegal ...
Antti Haapala
10

AGPL sama dengan GPL; Oleh karena itu, jika aplikasi Anda menggunakan kode AGPL, ia harus memiliki lisensi AGPL.

Apa yang dilakukan AGPL di atas GPL adalah pendefinisian ulang pengguna. Untuk program GPL yang berjalan di server Anda, Anda adalah pengguna, untuk AGPL, pengguna aplikasi sebenarnya adalah pengguna situs web atau layanan Anda. Karena itu, Anda mendistribusikan aplikasi jika orang lain selain Anda menggunakannya. Dan itu tentu saja menyiratkan semua persyaratan GPL standar.

Sedangkan untuk Mongo, saya berasumsi bahwa aplikasi yang menggunakannya tidak menggunakan kode itu, hanya beberapa API, yang bukan berlisensi AGPL.

Biarkan aku menjadi
sumber
secara umum, saya juga tidak menggunakan kode iText - saya menggunakan API-nya, yang merupakan API java biner daripada API JSON dalam kasus Mongo.
Bozho
@ Bozho Dan di bawah lisensi apa API itu?
Let_Me_Be
2
@Bozho Mongo DB driver semuanya dilisensikan di bawah lisensi Apache (saya mengutip situs web yang Anda tautkan).
Let_Me_Be
2
baik, itu cerdik - apa yang kita clal API dan apa klien API. Btw bisakah kamu menjawab tiga pertanyaan di atas?
Bozho
2
Tidak ada pertanyaan bahwa karya yang menggunakan kode AGPL dilisensikan di bawah AGPL (Kecuali untuk kode GPLv3 yang secara khusus diizinkan untuk berbaur tanpa persyaratan AGPL yang berlaku untuk kode GPLv3). Masalahnya muncul dalam definisi penggunaan Jaringan, yang hanya merujuk pada "Versi yang dimodifikasi", dan definisi "Versi yang dimodifikasi" dalam definisi berarti bahwa itu hanya berlaku untuk sesuatu yang memerlukan hak cipta (yaitu, mendistribusikan). Jadi masih agak keruh.
Erik Funkenbusch