Bagaimana cara mengelola, dalam praktiknya, file lisensi saat menggabungkan kode lisensi GPL dan BSD?

10

Saya menulis kode yang menggunakan satu perpustakaan dengan lisensi GPL (bukan LGPL), dan satu dengan lisensi BSD 3-klausa . Karena saya menautkan ke perpustakaan berlisensi GPL, kode saya juga harus GPL. Bagaimana seharusnya saya, dalam praktiknya, menangani LICENSE.txt asli dari perpustakaan BSD?

(A) Dapatkah saya mendistribusikan proyek sehingga kode sumber utama berlisensi GPL, dan kemudian beberapa subdirektori berlisensi BSD?

(B) Jika saya tidak hanya menautkan ke perpustakaan, tetapi untuk menggunakan dan menggabungkan kode BSD dan GPL dengan cara yang lebih terlibat, lalu apa yang harus dilakukan dengan LICENSE.txt?

Teks BSD 3 klausa memberi tahu: "Redistribusi kode sumber harus mempertahankan pemberitahuan hak cipta di atas, daftar ketentuan ini dan penafian berikut." jadi rupanya saya harus mempertahankan pemberitahuan hak cipta, dan daftar ketentuan, di suatu tempat. Tetapi kemudian saya juga harus meletakkan file txt-lisensi GPL di suatu tempat.

Lebih lanjut, tampaknya saya tidak perlu mempertahankan "Redistribusi dan penggunaan dalam bentuk sumber dan biner, dengan atau tanpa modifikasi, diizinkan asalkan ketentuan berikut dipenuhi:" bagian dari teks lisensi BSD, karena hanya memberitahu saya untuk pertahankan bagian lainnya.

Jadi, bagaimana, dan di mana file teks, dalam praktiknya saya harus mengatur teks lisensi GPL dan bagian-bagian dari lisensi BSD dan hak cipta yang saya simpan?

EDIT: Jadi dalam kasus B, saya akan mengambil 3-klausa kode BSD berlisensi, dan mendistribusikannya di bawah GPL, yang diizinkan, karena lisensi 3-klausa BSD (satu arah) kompatibel dengan GPL . Saya hanya bertanya bagaimana cara berurusan dengan teks lisensi dan file teks dalam praktek.

Sampo Smolander
sumber
Ini ide yang buruk. Pencarian web sederhana akan menunjukkan alasannya. Tetapi seluruh produk menjadi GPL. Ada masalah dengan ini sebelumnya.
Andrew T Finnell
2
@Andrew Finnell: Mengapa itu ide yang buruk? Seluruh produk adalah GPL, karena komponennya, tetapi apa yang salah dengan itu? Pustaka berlisensi BSD masih berlisensi BSD. Orang-orang tidak menggunakan lisensi BSD kecuali mereka ingin barang-barang mereka dapat digunakan oleh orang-orang yang ingin menggunakan lisensi yang lebih ketat.
David Thornley

Jawaban:

1

Untuk kesederhanaan, mungkin yang terbaik adalah merilis semuanya di bawah GPL. Lisensi BSD 3-klausa tidak memiliki bentuk salinan-kiri, jadi Anda berhak melakukan rebranding selama Anda mempertahankan pemberitahuannya.

Anda akan mendapatkan dua jenis file:

  • Awalnya file BSD: perlu memiliki kedua header, urutan tidak penting untuk pengetahuan saya, hanya saja mereka ada di sana
  • File Anda dan aslinya file GPL: harus memiliki header GPL

Dan tentu saja untuk setiap rilis biner, Anda harus menyertakan tautan ke sumber dan kedua header dalam bentuk lain. Saya akan merekomendasikan GPL standar, diikuti oleh "Bagian dari program ini awalnya dirilis di bawah lisensi berikut" atau sesuatu seperti itu, Anda mungkin dapat menemukan contoh ini terjadi di alam liar jika Anda mencarinya.

Perhatikan bahwa saya bukan pengacara, saya juga tidak berspesialisasi dalam lisensi sumber terbuka, atau lisensi pada umumnya. Saya hanya menyampaikan seperti apa interpretasi saya terhadap kombinasi lisensi yang diberikan nantinya.

Guvante
sumber
1

Oke, membaca bagian 7 dari GPLv3 , apakah memungkinkan untuk "izin tambahan [yang] hanya berlaku untuk bagian dari Program" [1]. Jadi menyimpan beberapa file atau direktori di bawah lisensi BSD tampaknya baik-baik saja, karena saya kira "lakukan apa pun yang Anda inginkan" dari lisensi BSD adalah "izin tambahan".

Juga, bagian 7 memungkinkan untuk "melengkapi ketentuan Lisensi ini dengan ketentuan:" (6 poin daftar jenis yang diizinkan berikut), dan semua 3 klausa (+ penafian) dari lisensi BSD tercakup, jadi dalam kasus mencampurkan kode BSD dan GPL dalam satu file, mungkin saya hanya perlu menaruh ADDITIONAL_TERMS.txt di suatu tempat, berisi 3 klausa + penafian dari lisensi BSD.

(Untuk lebih tepatnya, setiap saat saya berbicara tentang lisensi BSD, saya maksudkan lisensi 3-klausa AKA "Lisensi BSD Baru" AKA "Modifikasi BSD Licence", yang saya tautkan dalam pertanyaan saya.)

[1] Selama penerima program diizinkan untuk menghapus izin tambahan jika ia mendistribusikan kembali. Dan lisensi BSD memungkinkan untuk ini.

Sampo Smolander
sumber
-1

Ini sama sekali tidak mungkin menurut beberapa interpretasi dari ketentuan lisensi.

gnu.org mengatakan untuk versi 2:

Karena memberlakukan persyaratan khusus yang tidak ada dalam GPL; yaitu, persyaratan iklan program. Status GPL:

Anda tidak boleh memaksakan pembatasan lebih lanjut pada pelaksanaan hak yang diberikan oleh penerima di sini.

Klausa iklan memberikan batasan lebih lanjut, dan karenanya tidak kompatibel dengan GPL.

Lisensi BSD yang direvisi tidak memiliki klausa iklan, yang menghilangkan masalah.

dan untuk GPL v3 :

Mengapa lisensi BSD asli tidak sesuai dengan GPL? (#OrigBSD)

Karena memberlakukan persyaratan khusus yang tidak ada dalam GPL; yaitu, persyaratan iklan program. Bagian 6 dari status GPLv2:

Anda tidak boleh memaksakan pembatasan lebih lanjut pada pelaksanaan hak yang diberikan oleh penerima di sini.

GPLv3 mengatakan sesuatu yang serupa di bagian 10. Klausa iklan hanya memberikan batasan lebih lanjut, dan karenanya tidak kompatibel dengan GPL.

Lisensi BSD yang direvisi tidak memiliki klausa iklan, yang menghilangkan masalah.

Pengacara / hakim lain, tentu saja, mungkin memiliki pendapat berbeda.

johannes
sumber
1
Anda yakin tidak berbicara tentang lisensi BSD 4-klausa? "Baik nama <organisasi> maupun nama kontributornya dapat digunakan untuk mendukung atau mempromosikan produk yang berasal dari perangkat lunak ini tanpa izin tertulis sebelumnya." tidak merujuk pada iklan dalam bentuk atau bentuk apa pun, dan sebenarnya terkait dengan merek dagang organisasi, bukan hak cipta kode sumber.
Guvante
1
Memang! Saya bingung (lagi) tentang revisi yang berbeda!
johannes