LGPL mengharuskannya jika suatu program menggunakan perpustakaan LGPL-ed, pengguna harus dapat menautkan kembali program tersebut dengan versi perpustakaan yang berbeda:
...
d) Lakukan salah satu dari yang berikut:
0) Sampaikan Sumber Korespondensi Minimal berdasarkan ketentuan Lisensi ini, dan Kode Aplikasi yang Sesuai dalam bentuk yang sesuai untuk, dan berdasarkan ketentuan yang mengizinkan, pengguna untuk menggabungkan kembali atau menghubungkan kembali Aplikasi dengan versi modifikasi dari Versi Tertaut untuk menghasilkan suatu Pekerjaan Gabungan yang dimodifikasi, dengan cara yang ditentukan oleh bagian 6 dari GNU GPL untuk menyampaikan Sumber Terkait.
1) Gunakan mekanisme perpustakaan bersama yang sesuai untuk menghubungkan dengan Perpustakaan. Mekanisme yang cocok adalah yang (a) menggunakan pada saat run-time salinan Perpustakaan sudah ada pada sistem komputer pengguna, dan (b) akan beroperasi dengan baik dengan versi Perpustakaan yang dimodifikasi yang kompatibel dengan antarmuka dengan Versi Tertaut.
...
Namun dalam beberapa kasus, ini dapat menimbulkan kesulitan yang cukup besar. Secara khusus, program Haskell hampir selalu dikompilasi secara statis. Selain itu, kompiler melakukan optimasi lintas-modul sehingga tidak mungkin untuk mengambil bagian dari kode dan menggantinya dengan yang lain. Jadi sangat sulit untuk memenuhi kondisi ini. (Lihat tautan ini di Haskell Wiki.)
Tautan dinamis akan menjadi solusi, tetapi dalam banyak kasus, ini tidak mungkin. Sebagai contoh:
- Beberapa platform mungkin tidak memiliki tautan dinamis sama sekali.
- Beberapa bahasa tidak memiliki kemungkinan penautan dinamis. Atau, tidak mungkin membuat modul multi-platform.
- Dalam beberapa kasus, tautan dinamis akan mencegah optimalisasi penting. Meskipun saya mengatakan ini jarang merupakan masalah serius, dalam bahasa seperti Haskell kerugian kinerja bisa sangat besar.
Oleh karena itu, saya mencari lisensi standar LGPL yang tidak memerlukan kemungkinan untuk menautkan kembali (dan saya mengerti bahwa itu menghilangkan sedikit kebebasan yang diberikan kepada pengguna). Beberapa proyek menggunakan modifikasi LGPL mereka sendiri, misalnya wxWidgets . Tetapi saya lebih suka menggunakan beberapa lisensi standar yang agak lebih resmi, mungkin diperiksa oleh beberapa ahli hukum, dan (L) GPL kompatibel. Apakah ada yang seperti itu?
(Juga saya akan tertarik untuk mengetahui apakah ada konsekuensi yang tidak terduga dari modifikasi LGPL tersebut.)
sumber
Jawaban:
Saya terkejut tidak ada yang menyebutkan Lisensi Publik Mozilla. Ini mirip dengan LGPL kecuali memungkinkan tautan statis. MPL versi 2 kompatibel dengan GPL / LGPL.
Lisensi Publik Mozilla (MPL 2.0) vs Lisensi Publik Umum GNU Kecil (LGPL 3.0)
sumber
wxwidgets dilisensikan di bawah dasarnya = LGPL + tautan statis
sumber
IANAL, tetapi saya dituntun untuk percaya, bahwa salah satu solusinya adalah menyediakan file objek untuk bagian non-LGPL. Dengan cara itu pengguna dapat menautkan kembali program sehingga bebas mengubah bagian LGPL, memenuhi persyaratan LGPL.
Dengan kata lain, Anda harus memiliki paket sumber, dengan sumber LGPL dan file objek yang dikompilasi dari kode non-LGPL. Jelas Anda kemudian perlu menyediakan file objek untuk setiap arsitektur yang berbeda untuk melepaskan binari, tapi saya rasa ini bukan masalah besar.
Dari sudut pandang pengembangan, yang paling sederhana mungkin hanya memiliki sistem build juga membangun paket sumber pada saat yang sama, ketika membangun biner untuk distribusi.
sumber
Saya menemukan satu dengan Google: lisensi OpenScales
Ini bukan standar, dan saya tidak tahu apakah ada.
sumber
Bagaimana Anda akan terus menjamin kebebasan pengguna? Saya percaya jawaban "benar" adalah dengan menautkan shim yang secara dinamis memuat perpustakaan.
sumber