Saya menggunakan kode sumber dari contoh kode yang dilisensikan di bawah Lisensi Apache 2.0 dalam program saya. Sekarang saya ingin menerbitkan program dan kode sumber di GitHub menggunakan Lisensi MIT. Saya telah membaca yang berikut dalam lisensi:
Anda harus menyebabkan file yang dimodifikasi untuk membawa pemberitahuan menonjol yang menyatakan bahwa Anda mengubah file;
Tetapi saya tidak mengubah file apa pun yang baru saya salin bagian kode yang relevan ke file sumber saya.
Sekarang inilah pertanyaan saya:
Saya tahu saya harus menambahkan salinan Lisensi Apache 2.0 ke dalam proyek saya, tetapi apakah saya harus memasukkan apa pun ke file sumber saya untuk memublikasikan kode program / sumber saya dengan benar?
Karena ini adalah program baris perintah apakah saya harus menambahkan saklar -lisensi dan menampilkan lisensi atau apakah saya harus menambahkan output "USAGE"?
Apakah saya harus meletakkan Lisensi MIT ke dalam setiap file sumber saya atau apakah cukup untuk memiliki salinannya dalam proyek?
Terima kasih sebelumnya!
Jawaban:
Karena bagian dari sumber dilisensikan di bawah satu lisensi (Apache 2.0) dan bagian di bawah lisensi yang berbeda (MIT), penting bahwa setiap file membawa pemberitahuan yang menyatakan lisensi mana yang berlaku untuk konten file itu.
Sangat disarankan untuk hanya memiliki satu lisensi untuk setiap file sumber, jadi Anda harus memiliki kode yang Anda salin dari perpustakaan pihak ketiga dalam file sumber terpisah (atau beberapa file sumber terpisah). File-file ini harus memiliki pemberitahuan hak cipta yang mengacu pada lisensi Apache dan menyatakan bahwa Anda menyalin kode dari perpustakaan pihak ketiga.
Untuk kode Anda sendiri yang ingin Anda terbitkan di bawah lisensi MIT, disarankan untuk menempatkan lisensi MIT secara keseluruhan dalam komentar di bagian atas file Anda.
Lisensi MIT tidak terlalu lama, dan itu akan menghindari semua kebingungan tentang apa lisensi kode berada di bawah bahkan jika file terpisah dari sisa proyek.
Jika tidak mungkin memisahkan kode di bawah lisensi yang berbeda ke dalam file yang terpisah, maka Anda dapat melanjutkan seperti ini (dengan asumsi sebagian kecil file berada di bawah lisensi Apache):
Untuk menghindari membingungkan orang lain, ini harus dilakukan pada granularity fungsi.
sumber