Pembatasan lisensi open source GPL dan LGPL [ditutup]

107

Saya kesulitan memahami izin penggunaan open source. Saya membaca di suatu tempat bahwa GPL atau LGPL memberlakukan bahwa perangkat lunak yang menggunakan perangkat lunak GPL juga harus dirilis dengan sumber terbuka. Saya ingin membuat aplikasi yang menggunakan beberapa pustaka pengenalan gambar sumber terbuka. Bisakah saya menjual aplikasi ini atau harus open source?

Terima kasih!

rsinha
sumber

Jawaban:

80

LGPL memungkinkan Anda untuk menggunakan dan mendistribusikan perangkat lunak sumber terbuka dengan aplikasi Anda tanpa merilis kode sumber untuk aplikasi Anda.

GPL mengharuskan Anda untuk merilis kode sumber aplikasi Anda jika Anda memilih untuk menggunakan dan mendistribusikan perangkat lunak sumber terbuka berlisensi GPL dengan aplikasi Anda. Dengan kata lain, aplikasi Anda juga harus memiliki lisensi di bawah GPL.

Robert Harvey
sumber
14
Perhatikan bahwa LGPL menyatakan pustaka yang digunakan harus diganti. Jadi penautan statis tidak dimungkinkan.
Dykam
1
Jadi "DLL" (Dynamic Link Library) legal, benar?
Robert Harvey
Hanya jika Anda juga memberikan kode sumber untuk DLL tersebut, serta file header atau dokumentasi yang diperlukan agar dapat berinteraksi dengan aplikasi lainnya, jika ada yang ingin sangat memodifikasi, atau menulis ulang dari awal, itu DLL.
thomasrutter
48
  • GPL

    Pengembang lain dapat meminjam dan memodifikasi kode dan mendistribusikannya kembali sebagai bagian dari proyek mereka sendiri, hanya jika seluruh proyek mereka juga dilisensikan di bawah GPL.

    Ini mencegah kode digunakan dalam perangkat lunak berpemilik.

  • LGPL

    Pengembang lain dapat meminjam dan memodifikasi kode dan mendistribusikannya kembali sebagai bagian dari proyek mereka sendiri, asalkan bagian yang digunakan di bawah LGPL dilisensikan ulang di bawah LGPL. Bagian lain dari proyek diizinkan memiliki lisensi lain.

    Ini memungkinkan kode untuk digunakan dalam perangkat lunak berpemilik.

LGPL memiliki sejumlah persyaratan tambahan yang harus dipenuhi agar dapat mendistribusikannya dalam proyek dengan lisensi lain. Misalnya, harus memungkinkan untuk apa sajapengguna perangkat lunak yang sudah jadi untuk memodifikasi, menyusun ulang, atau mengganti bagian dari perangkat lunak yang dilisensikan di bawah LGPL dan menggunakan kode yang dimodifikasi ini dengan perangkat lunak yang sama. Jika Anda menerbitkan perangkat lunak berpemilik yang berisi beberapa kode LGPL, salah satu cara untuk memenuhi persyaratan ini adalah dengan menempatkan kode LGPL ke dalam pustaka yang terhubung secara dinamis, dan untuk mendistribusikan dengan perangkat lunak Anda file header yang diperlukan dan dokumentasi yang diperlukan untuk mengkompilasi ulang LGPL bagiannya sedemikian rupa sehingga masih dapat ditautkan dan digunakan dengan perangkat lunak yang disediakan. Tidak dapat diterima untuk mengambil langkah-langkah untuk mencegah modifikasi kode LGPL seperti mengaburkan kode itu sendiri atau API atau file header.

Perhatikan bahwa LGPL kompatibel dengan GPL: Anda dapat memilih untuk "meningkatkan" kode ke GPL dan memasukkannya ke dalam proyek yang sepenuhnya berlisensi GPL sebagaimana ditetapkan dalam poin pertama saya jika Anda mau. Namun Anda tidak dapat pergi ke arah lain dan melisensikan ulang kode berlisensi GPL sebagai LGPL.

thomasrutter
sumber
30

IANAL, tetapi konsepnya cukup mudah.

Pertama, Anda dan pengacara Anda harus membaca lisensi GPL dan LGPL . Kedua, Anda harus membaca FAQ GPL . Sejauh yang saya mengerti, Anda dapat memikirkan untuk menggunakan pustaka GPL / LGPL dengan cara ini:

  • Jika Anda menautkan secara dinamis atau statis dengan pustaka GPL atau LGPL, Anda telah membuat karya turunan.
  • Jika Anda menggunakan perpustakaan GPL, dan Anda menautkan dengan perpustakaan itu, perangkat lunak Anda harus dirilis dengan lisensi yang kompatibel .
  • Jika Anda menggunakan perpustakaan LGPL, dan Anda secara dinamis menautkan dengan perpustakaan itu, perangkat lunak Anda tidak harus dirilis dengan lisensi yang kompatibel, tetapi Anda harus tetap mematuhi LGPL.
  • Jika Anda menggunakan perpustakaan LGPL, dan Anda secara statis menautkan dengan perpustakaan itu, perangkat lunak Anda harus dirilis dengan lisensi yang kompatibel.
  • Lisensi GPL / LGPL berarti "gratis" seperti dalam "kebebasan berbicara", bukan "bir gratis" . Anda dapat membuat karya turunan dan menjualnya dengan uang dalam jumlah besar, tetapi Anda harus mematuhi GPL / LGPL.
Jared Oberhaus
sumber
29
"Pertama, Anda dan pengacara Anda harus membaca lisensi GPL dan LGPL." - bunuh aku sekarang
d512
10
"mudah". Begitu mudahnya sehingga Anda perlu melibatkan pengacara hanya untuk melihat apakah Anda dapat menggunakan sedikit kode. Inilah mengapa pengembang tidak boleh menggunakan lisensi GPL.
Womble
9

Jika Anda memotong dan menempelkan atau menautkan kode GPL ke dalam aplikasi Anda, aplikasi Anda harus memiliki lisensi di bawah GPL dan Anda kemudian diminta untuk melepaskan kode tersebut.

Namun, Anda masih dapat menjual aplikasi dan afaik Anda, satu-satunya masalah adalah Anda merilis kode sumber ke pelanggan Anda.

Jika pustaka yang Anda tautkan adalah Lisensi Publik Lesser Gnu alias LGPL maka Anda tidak perlu merilis kode aplikasi Anda sendiri tetapi Anda masih diharuskan untuk melepaskan semua modifikasi jika Anda memodifikasi kode lgpl'd.

rasjani
sumber
"lepaskan kode sumber ke pelanggan Anda" - benarkah? hanya untuk mereka? Saya pikir src harus tersedia untuk umum?
relascope
Saya bukan penutur asli bahasa Inggris atau pengacara. gnu.org/licenses/gpl-faq.html#WhatDoesWrittenOfferValid menyatakan bahwa yang paling menyediakan sumber untuk siapa saja yang memiliki akses ke biner. Ini tidak mengatakan bahwa siapa pun dapat meminta sumber, tetapi siapa pun yang telah diberikan biner, baik langsung dari Anda atau oleh pelanggan langsung Anda.
rasjani
menyatakannya secara langsung, hanya untuk pelanggan ... "Tetapi jika Anda merilis versi yang dimodifikasi ke publik dengan cara tertentu, GPL mengharuskan Anda untuk membuat kode sumber yang dimodifikasi tersedia untuk pengguna program, di bawah GPL."
relascope
7

GPL tidak melarang Anda menjual perangkat lunak. Bagaimanapun Anda harus menyediakan sumber untuk perangkat lunak.

Pertanyaan penggunaan sedikit lebih rumit. GNU / Linux dirilis di bawah GPL. Tidak ada yang melarang Anda untuk menulis perangkat lunak yang berjalan di Linux terlepas dari lisensi perangkat lunak Anda. Namun, Anda tidak dapat mendistribusikan Linux bersama dengan perangkat lunak Anda. Itu sering menjadi masalah dengan perpustakaan yang perlu menjadi bagian dari program. Untuk itulah lisensi LGPL. Anda dapat mengkompilasi program ac yang Anda tulis dengan gcc (karenanya menggunakan pustaka rutin runtime berlisensi LGPL dari gcc) dan tetap merilis perangkat lunak Anda tanpa batasan GPL.

Saya pikir itulah inti umumnya. Namun, ini sama sekali bukan nasihat hukum. Untuk nasihat hukum, Anda harus menyewa pengacara bersertifikat yang dapat memberikan nasihat hukum yang sesuai dengan keadaan khusus Anda.

Semoga ini membantu.

txwikinger.dll
sumber
3

Perbedaan GPL vs. LGPL menentukan apakah Anda harus / tidak harus melepaskan sumber aplikasi Anda kepada siapa pun yang memiliki salinan biner. Bagaimanapun, Anda tetap bisa menjual aplikasi.

Penyanyi
sumber