Dapatkah saya menggunakan plugin Lisensi Perangkat Lunak Apache, Versi 2.0 dan GNU LGPL 3 di aplikasi web komersial saya?

31

Saya punya dua plug-in. Satu memiliki lisensi GNU LGPL 3 dan yang lainnya memiliki Lisensi Perangkat Lunak Apache, Versi 2.0. Bisakah saya menggunakannya di aplikasi komersial saya? Dan jika ya, tindakan pencegahan apa yang harus saya ambil?

umairaslam
sumber
17
Ingatlah bahwa Anda harus TIDAK PERNAH mengikuti nasihat hukum yang Anda dapatkan di Internet, kecuali jika itu berasal dari seorang pengacara. Lebih disukai orang yang berspesialisasi dalam bidang yang diberikan, dalam hal ini: lisensi perangkat lunak. Jadi, ambillah semua jawaban yang Anda dapatkan dengan sebutir garam, karena jika tidak, Anda mungkin membuka diri terhadap tuntutan hukum (karena aplikasi Anda adalah jawaban komersial).
Radu Murzea

Jawaban:

34

Bisakah saya menggunakannya di aplikasi komersial saya?

Tergantung pada apa yang ingin Anda lakukan dengan perangkat lunak yang Anda hasilkan.

Pertama, baik ASL 1 , GPL atau LGPL tidak membuat batasan apa pun yang dapat Anda gunakan untuk menggunakan perangkat lunak di dalam organisasi Anda. Pembatasannya semua pada kode yang didistribusikan di luar organisasi Anda.

  • Untuk GPL batasannya adalah jika Anda memasukkan kode GPL ke perangkat lunak Anda sendiri, DAN Anda kemudian mendistribusikan perangkat lunak Anda di luar organisasi Anda, MAKA Anda harus membuat kode sumber tersedia di bawah ketentuan GPL atau lisensi sumber terbuka yang kompatibel.

    Jadi jika Anda menggunakan kode GPL dalam aplikasi Anda dan Anda mendistribusikannya, maka aplikasi Anda harus open source ... atau Anda melanggar lisensi.

  • Untuk LGPL, pembatasan (lihat di atas) hanya berlaku untuk kode sumber perpustakaan LGPL itu sendiri; yaitu jika Anda mengubah perpustakaan. Jika Anda hanya menggunakan perpustakaan, Anda tidak diharuskan untuk membuat kode sumber Anda tersedia.

    Ada juga batasan bahwa kode LGPL dalam aplikasi Anda harus dapat diganti oleh pengguna kode Anda. Itu berarti (pada dasarnya) bahwa jika Anda mendistribusikan kode Anda hanya sebagai binari, maka Anda tidak dapat secara statis menautkan kode Anda terhadap perpustakaan itu. Anda harus menggunakan tautan dinamis.

  • Untuk ASL, satu-satunya batasan yang signifikan adalah Anda harus mengatakan jika Anda telah mengubah apa pun dari versi asli kode ASL yang Anda gunakan.

Akhirnya, hanya untuk memperjelas, baik GPL, LPGL atau ASL tidak membatasi tujuan Anda dalam menggunakan perangkat lunak. Dan itu termasuk apakah tujuan Anda menghasilkan uang. Mereka hanya membatasi cara Anda dapat menghasilkan uang ... dan dalam kasus LGPL dan ASL, batasannya sangat minim.

Dan jika ya, tindakan pencegahan apa yang harus saya ambil?

Untuk LGPL dan ASL, tidak ada tindakan pencegahan yang diperlukan.

IANAL - Saya bukan pengacara. Jika Anda perlu yakin, tanyakan ahli yang nyata dan berkualifikasi; yaitu seorang pengacara yang berspesialisasi dalam hukum perangkat lunak IP.


1 - Untuk keperluan jawaban ini, ASL == Lisensi Perangkat Lunak Apache versi 2.

Stephen C
sumber
Apakah ini berlaku untuk aplikasi web? maksud saya pelanggan hanya akan menerima file perang yang berisi file .class dan .JAR. Jika semua LGPL masih ok?
Java Main
Jika Anda tidak memodifikasi perpustakaan LGPL maka Anda dapat memasukkannya dengan kode aplikasi Anda dalam file WAR. Tetapi Anda harus melakukannya sedemikian rupa sehingga orang yang Anda bagikan kode Anda dapat mengganti kode LBPL dengan versi lain. "Uber-JAR" mungkin merupakan pelanggaran. Mengacaukan perpustakaan LGPL bersama dengan kode Anda jelas merupakan suatu pelanggaran. (IANAL)
Stephen C
Ada folder bernama lib di mana saya menempatkan semua file jar. Jadi dia bisa memindahkan file Jar dengan versi yang lain. Tapi saya tidak menjamin itu akan berhasil selalu. Apakah itu masih baik-baik saja?
Java Main
Tanyakan pengacara Anda :-)
Stephen C
Ini hanya aplikasi web normal yang berjalan di kucing jantan. Jika bisa membantu akan baik. Pokoknya terima kasih atas klarifikasi Anda yang sangat membantu.
Java Main
5

Lisensi Apache tidak memberikan batasan pada perangkat lunak yang terhubung ke plug-in atau pustaka yang didistribusikan di bawah lisensi Apache. LGPL di sisi lain memiliki persyaratan bahwa perpustakaan LGPL terhubung secara dinamis (dan dapat diganti oleh pengguna) atau seluruh pekerjaan harus dirilis di bawah lisensi sumber terbuka yang kompatibel dengan GPL.

Untuk penggunaan dalam aplikasi sumber tertutup, ini secara efektif berarti Anda dapat menggunakan plug-in Berlisensi Apache tanpa batasan dan plug-in berlisensi LGPL harus dihubungkan secara dinamis.

Jika Anda mendistribusikan salah satu plug-in bersama dengan aplikasi Anda, maka Anda juga harus menyediakan sumber untuk plug-in atau menginformasikan pengguna Anda di mana mereka dapat memperoleh sumber-sumber tersebut.

Bart van Ingen Schenau
sumber
BartvanIngenSchenau apa yang Anda maksud dengan aplikasi "sumber tertutup"? Apakah maksud Anda paket solusi (bukan mendistribusikan kode sumber), atau apakah Anda merujuk distribusi di dalam organisasi vs sesuatu seperti distribusi komersial?
Rachael
1
@Rachael: "Sumber tertutup" biasanya digunakan untuk merujuk ke perangkat lunak yang kode sumbernya tidak didistribusikan. Distribusi dalam sebuah organisasi adalah sedikit kasus khusus ketika datang ke lisensi hak cipta, karena memberikan salinan dari produk perangkat lunak kepada orang-orang dalam sebuah organisasi tidak dianggap distribusi untuk undang-undang hak cipta yang paling (itu adalah dianggap menyalin).
Bart van Ingen Schenau
-4

Pertama-tama, ini bukan nasihat hukum.

Perangkat lunak GPL tidak diizinkan untuk ditautkan (termasuk melalui jaringan), dikompilasi ke dalam, atau dikirimkan dengan perangkat lunak non-GPL dalam bentuk apa pun. LGPL sedikit mengendurkan ini untuk memungkinkan dukungan pihak ketiga non-GPL, termasuk untuk produk komersial. Bagian penting di sini adalah bahwa itu harus pihak ketiga (sehingga untuk berbicara), yang menciptakan lubang lingkaran kecil.

Singkatnya, Anda menautkan ke perpustakaan LGPL yang ada (sebut ini pihak pertama), tetapi perangkat lunak yang membuat tautan ini harus dibuat LGPL. Sebut ini perangkat lunak ini pihak kedua. Meskipun perangkat lunak pihak kedua harus dirilis sebagai LGPL, sebagai pemilik perangkat lunak pihak kedua Anda dapat mengizinkan perangkat lunak lain untuk menggunakannya di luar LGPL (selama perangkat lunak pihak kedua tetap tersedia di bawah LGPL juga). Dengan kata lain, perangkat lunak pihak kedua harus tersedia sebagai LGPL, tetapi tidak diperlukanmelisensikannya sebagai LGPL dalam semua kasus. Setiap individu pengguna perangkat lunak harus memiliki lisensi untuk menggunakan perangkat lunak tersebut oleh hukum. Yang saya katakan adalah selama masing-masing pengguna memiliki akses ke perangkat lunak sebagai LGPL, Anda juga dapat melisensikannya menggunakan istilah non-viral. Anda dapat membuat perangkat lunak pihak ketiga juga, pada dasarnya melisensikan perangkat lunak pihak kedua kepada Anda untuk digunakan oleh perangkat lunak pihak ketiga di bawah persyaratan non-LGPL. Saya bahkan pernah mendengar ada orang yang menulis sendiri kontrak dan lisensi untuk menggunakan perangkat lunak mereka sendiri. Hukum bisa aneh! Perangkat lunak pihak ketiga tidak harus LGPL dalam hal apa pun.

Jadi yang Anda lakukan adalah membuat perpustakaan untuk menautkan ke lib LGPL hanya sebagai pembungkus, dan lepaskan pembungkus sebagai LGPL. Anda kemudian dapat menautkan ke pembungkus ini (pembungkus Anda ) dalam perangkat lunak non-LGPL, selama pembungkus Anda tersedia sebagai LGPL.

Saya tidak dapat berbicara untuk Lisensi Perangkat Lunak Apache karena saya tidak terbiasa dengannya.

JSON
sumber
Perhatikan bahwa saya menggunakan istilah "tautan" secara umum karena ini tidak hanya berlaku untuk bahasa yang dikompilasi dan juga dapat menyertakan "termasuk" perangkat lunak LGPL (dari lokasi lokal atau jaringan, seperti dengan PHP atau Javascript), atau sebaliknya "menautkan" ke perangkat lunak melalui jaringan seperti Java RMI dll.
JSON
1
"Perangkat lunak GPL tidak diizinkan untuk ditautkan (termasuk melalui jaringan), dikompilasi ke dalam, atau dikirimkan dengan perangkat lunak non-GPL dalam bentuk apa pun." . "Atau" seharusnya "dan". Anda BISA menggunakan perangkat lunak GPL dalam perangkat lunak non-GPL asalkan Anda tidak "mengirimkannya".
Stephen C
2
Jawaban itu salah pada banyak tingkatan. Pertanyaannya bukan tentang GPL, tetapi LGPL. Kode ASL dapat diintegrasikan dalam kode di bawah hampir semua lisensi lain, yang berarti juga LGPL atau bahkan GPL (bahkan jika sebaliknya dilarang). Anda bahkan dapat menggunakannya dalam perangkat lunak sumber tertutup. Dan, seperti yang ditunjukkan Stephen C., Anda dapat melakukan apa pun yang Anda inginkan selama Anda tidak mempublikasikannya atau membuatnya tersedia untuk umum.
Alexis Dufrenoy