Ini adalah praktik umum untuk membuat beberapa tweak atau perbaikan dalam kode pihak ke-3 (baik itu intisari sederhana atau seluruh perpustakaan). Tapi itu juga umum bahwa banyak dari kode ini memiliki aturan lisensi mereka sendiri dan akhirnya header pada setiap file dengan informasi hak cipta.
Setelah melakukan modifikasi itu apa yang harus dilakukan selanjutnya? Biarkan informasi lisensi tidak tersentuh atau coba perbarui termasuk Anda dengan sesuatu seperti @author
atau @revision
tag?
Masalah umum lainnya adalah mengubah namespace / paket pihak ke-3 agar sesuai dengan konvensi proyek Anda. Beberapa jenis lisensi memasukkan jenis informasi ini dalam blok lisensi mereka, dapatkah saya mengubahnya secara bebas?
Saya tahu jawaban untuk pertanyaan ini tergantung pada masing-masing jenis lisensi, jadi untuk membuat pertanyaan saya lebih spesifik ...
Mempertimbangkan aturan lisensi umum (biasanya berbeda dalam aspek minor, kan?), Etis (atau setidaknya diizinkan) bahwa saya bebas menambahkan informasi ke blok lisensi tentang modifikasi saya dan mungkin juga memodifikasi bagaimana saya merujuknya dalam kode saya (mis. gunakan YACorp.YALib
sebagai Utils.YALib
)?
Jawaban:
Saya pikir Anda mengacaukan lisensi perangkat lunak dan prolog apa pun yang mungkin menjadi bagian dari perangkat lunak.
Lisensi adalah tempat pemilik hak cipta untuk program menentukan persyaratan penggunaan (lisensi) untuk orang lain. Beberapa lisensi sangat permisif, yang lain jauh lebih ketat.
Prolog adalah tempat penulis menyisipkan
@author
dan memberi@revision
tag untuk memberikan cara melacak perubahan pada kode sumber. Dalam beberapa kasus, menjadi penulis dari penambahan kode yang tidak sepele dapat memberikan Anda hak cipta atas bagian kode tersebut. Mengurai masalah hak cipta bisa sangat sulit dan paling baik ditangani oleh pengacara. Namun, Anda secara khusus menyatakan bahwa Anda tidak peduli dengan aspek itu jadi saya akan melanjutkan.Ini sangat tergantung pada konvensi proyek.
Jika Anda melakukan proyek, Anda dapat melakukan apa pun yang Anda inginkan.
Jika Anda berencana untuk menyumbangkan perubahan Anda kembali ke proyek, Anda harus tetap dengan konvensi yang didirikan. Jika ada alasan kuat untuk mengubah namespace maka Anda harus mempresentasikannya ke komunitas aplikasi.
Jangan mengubah lisensi!
Pertama, Anda mungkin tidak memiliki hak hukum untuk mengubah lisensi. Kedua, setiap perubahan yang Anda buat kemungkinan akan mengacaukan lisensi. Tinggalkan perubahan lisensi kepada pengacara.
Sejauh memperbarui prolog, itu tergantung pada norma-norma proyek. Beberapa proyek tidak menginginkan prolog karena mereka menggunakan kontrol sumber untuk melacaknya. Proyek lain melakukannya. Ikuti konvensi proyek.
Jika Anda menyimpan perubahan untuk diri sendiri, mengapa Anda peduli dengan apa yang dipikirkan orang lain? Sesuatu yang Anda gunakan hanya untuk diri sendiri dan tidak pernah didistribusikan kepada orang lain tidak berdampak balik pada proyek asli. Jadi mereka tidak peduli apa yang Anda lakukan.
Jika Anda berencana mendistribusikan perubahan Anda atau berkontribusi kembali ke proyek, Anda perlu mengevaluasi konvensi proyek itu. Beberapa proyek tidak ingin bercabang dan akan memiliki lisensi untuk mencegahnya. Yang lain mengatakan "melakukan apa yang Anda inginkan" dan Anda diberi carte blanche untuk melakukan apa yang Anda inginkan. Pada akhirnya, jawabannya di sini tergantung pada proyek tertentu yang Anda lihat.
sumber
Saya akan menambahkan komentar, sebagian untuk memberi sinyal kepada pembaca bahwa file tersebut bukan "vanilla", dengan tautan ke dokumentasi yang relevan atau sistem pelacakan masalah.
Sunting: Jadi situasi ini mengingatkan saya ketika sebuah paket distribusi Linux misalnya perpustakaan. Debian memiliki pedoman dan standar tentang bagaimana paket harus dibangun dan dinamai, yang bisa sangat bervariasi dari bagaimana perpustakaan biasanya didistribusikan sebelum dibangun.
Saya tidak berpikir Anda harus malu menamai / membangun / memodifikasi perpustakaan, karena saya kira Anda tidak akan membagikan hasilnya ke dunia yang lebih luas? Dalam hal ini saya akan menyertakan README bersama dengan sumber yang menjelaskan perubahan apa yang telah Anda buat dan mengapa. Misalnya README. $ {CompanyName} .changes
sumber
Anda harus berkonsultasi dengan aturan lisensi kode.
Secara umum, banyak aplikasi frontend open source (misalnya Firefox, OpenOffice) menganggap nama aplikasi dan logo mereka sebagai merek dagang; jadi jika Anda akan merilis versi modifikasi dari aplikasi Anda tidak akan dapat menggunakan merek dagang asli / pakaian perdagangan (dengan demikian IceWeasel, Torbrowser, LibreOffice).
Namun, sebagian besar perpustakaan pemrograman sering kurang peduli tentang merek dagang selama cukup jelas siapa yang melakukan apa (biasanya ini dapat ditemukan dari metadata kontrol versi).
Informasi penulis melayani dua tujuan:
Yang terakhir menjadi lebih penting karena perubahan Anda menjadi lebih besar. Informasi kepenulisan yang sebenarnya umumnya dapat ditemukan dalam kontrol versi, tetapi beberapa proyek secara resmi menghargai satu set penulis dalam file terpisah. Titik potong di mana orang akan dikreditkan secara formal bervariasi untuk setiap proyek, hubungi penulis asli jika ragu.
sumber