Seseorang tidak hanya "menjaga terhadap" kontribusi ilegal.
Anda tidak pernah menerima sumbangan secara membabi buta, dan harus memiliki proses untuk memeriksa sumbangan (termasuk milik Anda) untuk beberapa jenis masalah:
- tes unit (otomatis)
- backdoors dan kelemahan keamanan (analisis statis mungkin membantu, ada alat lain)
- bau kode (otomatis)
- logika kode yang buruk (peer review, "cukup mata untuk membuat bug dangkal", dll. - kisah OpenSSL menunjukkan bahwa ini mungkin tidak cukup)
- Saya yakin saya melewatkan beberapa yang lain - kontribusi diterima
"Semua" yang perlu Anda lakukan adalah menambahkan cek untuk plagiarisme . Ini dapat dilakukan, sampai titik tertentu, dengan alat otomatis dengan hanya googling baris kode yang relevan.
Saya baru saja mencoba dengan mengangkat beberapa contoh kode dari proyek, dan itu berhasil. Saya hanya mengekstraksi string, format, komentar, nama fungsi, dan prototipe dari kode, lalu googled semuanya, dan melihat di mana satu situs muncul dalam beberapa pertandingan. Dalam 17 tes dari 19 situs sumber adalah yang pertama dari lima kandidat; dalam semua kasus, situs itu memang muncul di antara lima yang pertama. Sebaliknya, potongan kode saya sendiri hanya memicu positif palsu dalam tiga (empat) kasus dari dua puluh, dengan target kualitas yang sangat rendah, sehingga dengan cepat membaca setengah lusin situs saya dapat mengabaikan peringatan tersebut. Selain itu, dengan kode GPL, cuplikan dari Google Search tampak sama dengan kode yang saya uji-filked.
Pada titik ini saya yakin Anda bisa melakukannya dengan tangan . Lihatlah kodenya, lihat komentarnya (apakah itu masuk akal? Jika tidak, itu jenis lain dari lampu merah. Jika ya, apakah mereka semua telah ditulis ulang (!) Atau Anda akan menemukannya), cobalah beberapa string teks, tancapkan di Google dan / atau mesin pencari lainnya.
Dan Anda hanya perlu ini untuk kontribusi yang cukup besar .
Dari sudut pandang hukum - saya dengan cepat mengarungi kedalaman saya - saya membayangkan bahwa Anda membutuhkan kontributor Anda untuk menerima beberapa bentuk pengabaian atau perjanjian di mana mereka menyatakan bahwa mereka akan berkontribusi secara jujur.
Ketika mereka tidak, dan Anda melewatkan itu (misalnya mereka mengubah / mengaburkan beberapa kode GPL sehingga tidak ditemukan dengan googling), kemungkinan IMHO adalah bahwa itu tidak akan pernah ditemukan kecuali dilakukan untuk tujuan penjebakan, dan mereka sendiri meniup peluit. Pada saat itu proyek Anda akan melanggar GPL dan Anda dapat:
- hapus kode GPL dari proyek
- menyatakan sisa proyek berada di bawah GPL
Agar seluruh skenario menjadi masalah yang realistis, "kontributor" harus:
- cari bagian kode GPL yang bermakna dengan proporsi yang bermanfaat,
- hapus semua informasi lisensi,
- tulis ulang secara menyeluruh - komentar, nama fungsi, nama variabel non-sepele, string teks - sehingga pencarian tidak akan menemukan kode, namun tetap dikenali sama , dan pada saat yang sama biarkan berfungsi
- biarkan kode "rebus" dalam basis kode dan kontributor lain bergantung pada fungsinya , ke titik di mana menghapusnya akan menjadi masalah
Seluruh skenario, terutama poin terakhir, menurut saya sangat mengada-ada. Setelah pemeriksaan plagiarisme dilakukan, saya akan berhenti khawatir.