Cara mengelola pemberitahuan hak cipta dari kontributor ke proyek berlisensi BSD

9

Kami memiliki lisensi BSD berikut dalam LICENSEfile:

Copyright (c) 2006-2016 SymPy Development Team

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

  a. Redistributions of source code must retain the above copyright notice,
     this list of conditions and the following disclaimer.
  b. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.
  c. Neither the name of SymPy nor the names of its contributors
     may be used to endorse or promote products derived from this software
     without specific prior written permission.


THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

Kami mengelola repositori sumber dengan git ( https://github.com/sympy/sympy ), dan dengan demikian setiap penulis memiliki tambalan yang ia buat. Kami kemudian memiliki AUTHORSfile tempat kami mendaftar semua orang yang berkontribusi tambalan (saat ini sekitar ~ 450 atau lebih). Biasanya penulis melakukan fork repositori pada github dan menambahkan tambalan saat git melakukan.

Seorang penulis melakukan forked repositori, tetapi menambahkan namanya ke dalam LICENSEfile itu sendiri sebagai pemberitahuan hak cipta sebagai berikut (Saya mengubah namanya):

Copyright (c) 2006-2015 SymPy Development Team,
              2015-2016 John Doe

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

  a. Redistributions of source code must retain the above copyright notice,
     this list of conditions and the following disclaimer.
  b. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.
  c. Neither the name of SymPy nor the names of its contributors
     may be used to endorse or promote products derived from this software
     without specific prior written permission.


THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

Penulis mengembangkan tambalan, yang memperbaiki bug. Perbaikan terdiri dari menyentuh hanya satu file dan menghapus 19 karakter dari satu baris, dan menambahkan 18 karakter pada baris lain dalam file yang sama. Itu juga menambahkan tes 5 baris untuk bug ini ke dalam file uji. Itu dia.

Dalam kondisi apa kita diizinkan secara hukum untuk menerapkan tambalannya (dengan memilih ceri komitmennya, mis. Menjaga tanggal dan nama penulis + email dalam data meta git)?

a) Apakah kita perlu memodifikasi LICENSEfile kita untuk menambahkan pemberitahuan hak ciptanya?

b) Atau apakah kita masih mematuhi lisensi BSD jika kita menyimpan AUTHORSfile terbaru dan menyimpan repositori git yang khusus melacak trek yang dikomit oleh penulis.

Apa yang saya tidak suka tentang opsi a) adalah bahwa jika semua 450 atau lebih kontributor memerlukan ini, maka kita akan perlu untuk menjaga dasarnya isi AUTHORSfile dalam LICENSEfile, bersama dengan Copyrightkata dan tahun. Git jauh lebih baik dalam menjaga tahun (dan bahkan hari dan menit) serta garis mana yang dimodifikasi oleh setiap penulis dan caranya. Kemudian kami memiliki LICENSEfile sederhana yang tidak berubah dan kami menyimpan daftar penulis AUTHORS(dan kami memiliki skrip yang membuatnya disinkronkan dengan daftar penulis dari git).

Ondřej Čertík
sumber
4
Saya memberikan suara untuk menutup pertanyaan ini sebagai di luar topik karena pertanyaan itu meminta nasihat hukum yang melampaui apa yang bisa diketahui oleh seorang programmer. Anda harus bertanya layer.
Bart van Ingen Schenau
1
atau pengacara ...;)
Erik Eidt
7
Pemrogram tidak diharapkan mengetahui hal ini tetapi mereka mungkin. Ini akan menjadi ide yang lebih baik untuk menghapus komentar yang pada dasarnya mengatakan "Anda harus berbicara dengan seorang pengacara", yang merupakan tanggapan yang terlalu sering digunakan. Programmer memang memiliki pemahaman tentang lisensi perangkat lunak, mungkin lebih dari kebanyakan setiap pengacara di dunia. Pilihan saya adalah menyimpan ini di sini.
moorepants
2
Pemahaman saya adalah bahwa ketika seseorang mengajukan permintaan kepada SymPy, mereka secara implisit melisensikannya di bawah lisensi SymPy.
penanggung jawab
2
@asmeurer benar. Pertanyaan saya adalah apakah penulis tidak membuat permintaan tarikan. Yaitu dalam kondisi apa Anda dapat memilih tambalan diposting ke garpu repositori Anda, dilisensikan di bawah lisensi yang sama, tetapi pemberitahuan hak cipta dimodifikasi.
Ondřej Čertík

Jawaban:

3

Anda dapat memasukkan kode apa pun yang memiliki lisensi yang kompatibel dengannya.

Yang mengatakan, kecuali kode baru secara khusus dilisensikan di bawah lisensi yang kompatibel jika Anda ingin menarik perubahan ke dalam basis kode Anda, Anda membuka diri terhadap kemungkinan beberapa kesulitan.

Khususnya, kecuali jika kode secara khusus menyatakan bahwa kontribusi baru di bawah lisensi yang kompatibel, lisensi default "semua hak cipta" berlaku untuk itu. Menarik kode akan menjadi pelanggaran hak cipta.

Ada juga kemungkinan bahwa kode baru dilisensikan di bawah lisensi yang kompatibel dengan Anda (dan Anda perlu mempertahankan lisensi untuk kode tersebut), tetapi tidak kompatibel dengan banyak pengguna Anda. Misalnya, jika Anda menggunakan klausa BSD 2, dan seseorang melisensikan kontribusi garpu berdasarkan klausa BSD 3, Anda mungkin dapat menariknya ke dalam kode Anda tanpa terlalu banyak kesulitan. Namun, karena klausa BSD 3 tidak kompatibel dengan GPL, itu akan membuat proyek GPL Anda tidak kompatibel.

Jika Anda harus memutuskan perubahan dari BSD ke GPL di lain waktu (misalnya), dan permintaan tarik memberikan hak yang diperlukan untuk mengubah lisensi sebagai bagian dari perjanjian lisensi kontributor, Anda menarik kode dari proyek lain yang belum setuju untuk PKB dapat menyebabkan Anda sakit kepala.

Itulah kasus umum ...

Untuk kasus khusus di mana file lisensi berubah ... Saya tidak tahu. Dari pembacaan sederhana file lisensi:

Copyright (c) 2006-2015 SymPy Development Team,  
              2015-2016 John Doe

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

Sebuah. Redistribusi kode sumber harus mempertahankan pemberitahuan hak cipta di atas ,
   daftar kondisi ini dan penafian berikut.

Bit itu tampaknya menunjukkan bahwa jika Anda ingin menarik perubahan itu, Anda juga perlu mengubah file lisensi Anda.

Sayangnya, Anda tidak memiliki CLA yang terdefinisi dengan baik saat ini. Untungnya, saat ini Anda hanya memiliki 450 orang untuk bertanya.


sumber
Jadi dari titik baca "a." tampaknya "pemberitahuan hak cipta di atas" untuk kode SymPy asli dipertahankan oleh John Doe dan bahwa John Doe melisensikan kontribusi baru ke garpu di bawah lisensi yang sama tetapi bahwa penambahan baru dilindungi hak cipta untuk John Doe.
moorepants
2
@moorepants untuk contoh ini, yang kelihatannya seperti itu. Dan dengan demikian, jika SymPy ingin melisensikan mereka kembali ke dalam kodenya, itu juga perlu mengikuti pernyataan itu dalam lisensi dan mempertahankan pemberitahuan hak cipta oleh John Doe.
Terima kasih @MichaelT untuk jawabannya. Apa yang perlu saya tanyakan kepada 450 orang itu? Tampaknya yang perlu saya lakukan hanyalah menyalin lisensi dari garpu (termasuk pernyataan hak cipta John Doe), dan hanya menambahkannya ke dalam NOTICESfile, di mana kami akan menyimpan semua lisensi pihak ke-3.
Ondřej Čertík
1
@ OndřejČertík jika Anda ingin mengubah lisensi pada SymPy (ini bekerja dengan asumsi bahwa setiap orang yang telah mengajukan permintaan tarik tidak masalah dengan melisensikannya di bawah BSD) untuk mengatakan ... GPL, Anda memerlukan izin dari semua orang yang telah berkontribusi karena hanya mereka yang dapat memutuskan untuk melepaskannya kembali di bawah lisensi lain. Apache memiliki CLA yang agak terlibat . Banyak proyek besar memiliki semacam CLA untuk memastikan proyek tersebut dalam haknya untuk mendistribusikan kode yang dikirimkan
1
Saya sarankan melihat poin pertama dari wacana CLA :You grant to "The Company" (Civilized Discourse Construction Kit, Inc.) a non-exclusive, irrevocable, worldwide, royalty-free, sublicenseable, relicenseable, transferable license under all of Your relevant intellectual property rights, to use, copy, prepare derivative works of, distribute and publicly perform and display "The Contributions" on any licensing terms, including without limitation: (a) open source licenses like the GNU General Public (v2.0) license; ...
2

Jika ada kode sumber berlisensi BSD dan seseorang mem-forknya menambahkan tambalan tambahan, maka kode sumber baru ini dalam repo baru harus menyertakan file lisensi BSD yang tepat dari repo asli dan tambalan baru harus dilisensikan di bawah lisensi baru (atau bahkan lisensi yang sama). Dengan demikian, garpu harus memiliki satu atau dua lisensi di repositori. Tidak dapat mengedit lisensi asli, karena melanggar persyaratan lisensi BSD.

Sekarang jika repo asli ingin cherry pick tambalan dari garpu, maka salinan lisensi baru garpu harus ditambahkan ke repo asli. Pada akhirnya kedua repositori akan memiliki masing-masing lisensi, satu mencakup setiap set patch.

SymPy juga harus mensyaratkan bahwa kontributor menyerahkan hak cipta mereka ke proyek SymPy. Ini berpotensi sangat bermasalah untuk membiarkan kontributor mempertahankan hak cipta mereka untuk setiap tambalan saat pengajuan. Perjanjian kontributor yang menjelaskan hal ini diperlukan untuk memperjelas apa yang terjadi.

moorepants
sumber
Tentu saja, jika tidak ada lisensi tambahan pada fork, maka kontribusinya, yah, tidak dilisensikan di bawah apa pun selain dari standar, semua lisensi dilindungi undang-undang.
1
Saya tidak percaya itu benar. Jika tidak ada lisensi yang ditentukan pada tambalan baru di garpu, maka ada kemungkinan ambiguitas. Secara default dalam undang-undang AS, pembuat konten memiliki hak cipta jika tidak ada yang dinyatakan. Jadi, jika tidak ada lisensi tambahan yang terdaftar, ada kemungkinan bahwa pembuat tambalan dalam garpu memiliki hak cipta untuk tambalan baru. Tapi itu ambigu karena pencipta harus meninggalkan lisensi asli di garpu, sehingga mungkin berlaku untuk semua tambalan mereka. Per file pernyataan lisensi membantu menjernihkan ambiguitas itu, tetapi Anda jarang melihat pernyataan "per tambalan".
moorepants