Apa sebenarnya yang harus saya lakukan jika saya menggunakan perpustakaan berlisensi LGPL?

48

Saya telah membaca pertanyaan dan jawaban ini , tetapi saya masih tidak mengerti apa sebenarnya yang harus saya lakukan jika saya terhubung secara dinamis dengan perpustakaan yang menggunakan lisensi LGPL (perpustakaan SDL dalam kasus saya).

Jika saya memahami teks LGPL dengan benar, saya perlu menyediakan sumber untuk pustaka. Apa ini cukup? Jika tidak, apa lagi yang perlu dilakukan?

BЈовић
sumber

Jawaban:

47

Persyaratan dasar LGPL adalah untuk memisahkan perpustakaan berlisensi LGPL dan produk Anda sendiri dengan cukup baik. Itu seharusnya memungkinkan pengguna untuk menyediakan versi perpustakaan mereka sendiri alih-alih yang Anda kirimkan dengan perangkat lunak Anda (dengan bug diperbaiki, misalnya). Untuk mencapai ini, Anda memiliki dua opsi:

  • gunakan kode LGPL sebagai pustaka bersama (sehingga pengguna hanya akan menyalin biner pustaka mereka dari yang Anda kirimkan), atau
  • menyediakan kode sumber dari seluruh proyek (sehingga pengguna dapat menyalin sumber perpustakaan mereka dan mengkompilasi ulang semuanya).

Namun perlu dicatat bahwa pemisahan saja tidak cukup, meskipun diperlukan. Anda harus memberi pengguna Anda cara yang terdokumentasi untuk mengganti pustaka dengan versi mereka (yaitu, cara mengunggah firmware, atau mengkompilasi ulang pembungkus Python untuk pustaka LGPL C ++).

Klausa penting kedua adalah persyaratan atribusi . Ini seharusnya membantu mempromosikan nama pengembang asli perpustakaan, dan menyatakan bahwa apa itu perangkat lunak keren yang mungkin telah dikembangkan oleh orang lain :). Di bagian yang relevan dari jendela "Tentang" atau file README (jika lisensi Anda adalah Apache, ini akan menjadi NOTICEfile), Anda harus mencantumkan nama karya LGPL yang Anda gunakan.

Perhatikan bahwa saya bukan pengacara, dan ini bukan nasihat hukum. Perhatikan bahwa saya juga bukan tukang ledeng, dan ini bukan saran sanitasi.

P Shved
sumber
13

Jika Anda menghubungkan perpustakaan LGPL secara statis maka Anda perlu menyediakan sumber perpustakaan dan kode sumber atau objek dari aplikasi Anda.

Jika Anda secara dinamis menautkan pustaka LGPL maka Anda dapat mendistribusikan aplikasi Anda sendiri, tanpa pustaka dan memberi tahu orang-orang dari mana Anda mengunduhnya dan cara memasukkannya, untuk menggunakannya. Atau Anda dapat menyertakan salinan binari perpustakaan dan sumbernya dengan aplikasi Anda.

Ini menjelaskannya dengan cukup baik: http://answers.google.com/answers/threadview/id/439136.html (yang saya ambil dari jawaban dalam pertanyaan yang ditautkan dalam OP)

IANAS

Matt Ellen
sumber
2
^ Ini. Kuncinya adalah ini: konsumen produk mendapatkan aplikasi dengan perpustakaan LGPL. Bisakah mereka melakukan perbaikan pada bagian LGPL dan menggunakan versi baru yang disempurnakan dengan produk asli? Jika ya, maka Anda telah memenuhi tujuan LGPL yang dimaksud. LGPLv3 membuatnya secara eksplisit bahwa bahkan jika produk tertanam firmware, Anda masih harus memungkinkan pengguna akhir untuk mengganti bagian LGPL . Itu berarti bisa mengkompilasi ulang firmware lengkap dengan versi baru perpustakaan dan memuatnya ke perangkat . (Pemahaman saya, IANAL, ini bukan nasihat hukum.)
Scott Whitlock
@Scott: Saya percaya bagian tertanam / firmware hanya berlaku jika dimungkinkan untuk mengubah firmware pada perangkat.
David Thornley
Apa arti "S" dalam "IANAS"?
Joe Z.
1
@JoeZeng Pengacara
Matt Ellen
1

IANAL, tetapi pemahaman saya adalah bahwa inti dari LGPL adalah bahwa ia tidak "menginfeksi" kode tergantung padanya seperti GPL atau AGPL. Jadi Anda dapat memiliki kode LGPL sebagai ketergantungan, dan Anda tidak perlu melakukan apa pun.

Karena itu, jika Anda mengubah / memodifikasi / mendistribusikan kode LGPL dengan aplikasi Anda, Anda harus membuat kode itu tersedia untuk umum.

Jason Lewis
sumber
Tidakkah ada perjanjian / pemahaman bahwa "menyediakan sumber untuk umum" dapat dipenuhi dengan memasukkan URL yang tertaut ke sumber / repo asli? (Dengan asumsi Anda menggunakan versi yang tidak dimodifikasi untuk produk Anda, tentu saja.) Saya sedikit terkejut ketika saya mendengar ini, jadi itu sebenarnya bisa salah :).
TMN