Ada tiga proyek perangkat lunak: A, B dan C.
A diterbitkan untuk siapa saja dan dilisensikan di bawah GPL.
B extends A, diterbitkan juga, tetapi tidak memiliki informasi lisensi atau keliru dilisensikan di bawah LGPL. Pada dasarnya itu melanggar lisensi A dengan tidak menjadi GPL. Kode sumber B masih tersedia.
C meluas B. Bisakah C dipublikasikan di bawah GPL? Motivasi akan menjadi "A adalah GPL, turunan apa pun juga harus GPL, jadi B adalah GPL dan C juga bisa menjadi GPL".
licensing
open-source
gpl
Andrej
sumber
sumber
Jawaban:
Pertama, B melanggar GPL pada A. Tapi itu bukan kekhawatiran Anda dan tidak relevan dengan pertanyaan di sini (siapa tahu, mungkin B mendapat lisensi LGPL dari A pada kode mereka sehingga dapat dirilis di bawah LGPL? ).
Pertanyaannya adalah "Bisakah Anda membuat perangkat lunak GPL berdasarkan kode LGPL?" Jawabannya adalah "ya".
LGPL tidak seketat GPL (jadi mengapa B melanggar lisensi pada A kecuali ada ketentuan lain yang dibuat), tetapi juga memungkinkannya untuk dikembalikan ke proyek GPL dengan cukup mudah.
Dari lisensi LGPL:
Itu bagian dari lisensi. Anda dapat dengan mudah membangun perangkat lunak GPL berdasarkan kode LGPL.
Ada beberapa perbedaan versi yang harus Anda perhatikan untuk memastikan bahwa kode dilisensikan dengan cara yang benar, di bawah versi GPL yang benar.
Jika tidak ada informasi lisensi yang disajikan, Anda tidak memiliki hak untuk memperpanjangnya. B seharusnya tidak didistribusikan, tetapi kontribusinya tidak dilisensikan di bawah lisensi sumber terbuka. Ini mungkin merupakan proyek internal yang dipublikasikan atau acara lainnya.
Itu tidak disajikan di bawah lisensi yang kompatibel dengan perpanjangan dengan GPL. Pertimbangkan situasi di mana sebuah perusahaan, menggunakan perangkat lunak GPL secara internal (dapat diterima - bukan pelanggaran), membuat repo mereka dipublikasikan.
Dalam kasus ini, sangat mungkin bahwa proyek C melanggar pelanggaran hak cipta itu sendiri (materi yang ditambahkan B yang tidak berlisensi di bawah GPL karena seharusnya tidak didistribusikan di tempat pertama).
Seseorang tidak dapat memaksakan lisensi pada sumber orang lain. Itu sesuai dengan lisensi, atau melanggar itu. Jika itu melanggar, maka sebagaimana tercantum dalam lisensi:
Pelanggaran terhadap GPL tidak berarti bahwa materi tersebut berada di bawah GPL, melainkan bahwa materi tersebut tidak dapat didistribusikan.
sumber
Ada pemegang hak cipta: Ada hak cipta atas karya yang dibuat oleh A, ada hak cipta pada penambahan oleh B, dan ada hak cipta atas setiap perubahan yang dilakukan C. C harus memeriksa apakah ia memiliki izin untuk menggunakan perangkat lunak tempat A dan B memiliki hak cipta.
A dilisensikan di bawah GPL. Saya cukup yakin bahwa GPL memberi Anda izin untuk menggunakan karya A berdasarkan ketentuan GPL, bahkan jika Anda menerimanya dari B yang melisensikannya secara tidak benar. Mungkin ada masalah praktis: Misalnya, Anda harus dapat memberikan kode sumber. Jika Anda menerima perangkat lunak tanpa kode sumber, maka Anda tidak memiliki cara untuk menerbitkannya di bawah ketentuan GPL.
B dilisensikan dengan lisensi lain. B seharusnya dilisensikan di bawah GPL, tetapi tidak. Jika lisensi B memberi Anda lebih banyak hak daripada GPL, Anda sebenarnya tidak memiliki hak apa pun untuk kode A - B tidak dapat memberi Anda hak tambahan untuk kode A. Anda dapat menggunakan kode A di bawah persyaratan GPL karena A mengizinkannya, dan kode tambahan B di bawah lisensi B.
Jika B merilis kode mereka di bawah lisensi yang lebih ketat dari GPL, maka B kemungkinan besar akan melakukan pelanggaran hak cipta. Anda tidak dapat menggunakan kode B di bawah lisensi GPL. Itu sering membingungkan: GPL tidak bisa memaksa B untuk melakukan apa pun. Ini hanya memberi B pilihan: Terbitkan dengan cara ini, dan itu sah secara hukum, atau terbitkan dengan cara lain, dan itu ilegal. B memiliki hak untuk melakukan sesuatu yang ilegal dan menderita akibatnya (dituntut karena pelanggaran hak cipta). Anda tidak memiliki hak apa pun atas kode B yang B tidak berikan kepada Anda.
sumber
Secara teknis, dimungkinkan untuk memperluas perpustakaan GPL dengan kode yang itu sendiri tidak dicakup oleh lisensi GPL. Masalahnya adalah ketika Anda mendistribusikan karya turunan yang Anda buat, Anda harus mematuhi semua persyaratan yang diberikan GPL pada Anda.
Dalam situasi Anda, ini berarti bahwa dimungkinkan untuk memiliki perpustakaan A di bawah GPL dan kode baru di perpustakaan B di bawah LGPL. Karya gabungan (perpustakaan B) didistribusikan secara efektif di bawah lisensi GPL, dan dapat didistribusikan karena lisensi LGPL kompatibel dengan lisensi GPL (Anda dapat menggunakan kode lisensi LGPL dalam proyek berlisensi GPL).
Dalam situasi itu, sangat baik untuk memiliki kode baru di perpustakaan C di bawah GPL, dengan hasil kerja di bawah GPL juga.
sumber