Seperti yang baru-baru ini dilaporkan di sini :
Xamarin telah melakukan forked Cocos2D-XNA, kerangka pengembangan game 2D / 3D, menciptakan perpustakaan lintas platform yang dapat dimasukkan dalam proyek PCL.
Namun pendiri proyek yang bercabang itu mengatakan :
Tujuan dari lisensi MIT adalah untuk tidak membebani penggunaan wajar Anda. Bukan untuk mendorong Anda untuk mengambil perangkat lunak, mengubah namanya menjadi milik Anda, dan kemudian "bawa ke arah yang baru" seperti yang Anda katakan.
Meskipun tidak ilegal, itu tidak etis.
Tampaknya halaman GitHub dari proyek baru bahkan tidak menunjukkan bahwa itu adalah garpu dengan cara GitHub yang khas, sebagai gantinya memilih bagian History yang mudah dilepas (lihat bagian bawah).
Jadi pertanyaan saya adalah:
- Apakah tindakan Xamarin dan cara tindakan itu dilakukan etis atau tidak?
- Apakah mungkin untuk menghindari situasi seperti itu jika Anda seorang pengembang tunggal atau sekelompok kecil pengembang tanpa pendanaan?
Saya berharap ini bisa menjadi pertanyaan wiki atau akan ada beberapa jawaban obyektif didasarkan pada etika / filosofi OSS modern.
Jawaban:
Baiklah, mari tanyakan pada ahlinya - Daftar Open Source Initiative tentang Lisensi MIT itu sendiri, dengan lisensi yang dikutip secara keseluruhan:
Jika ada orang - individu atau perusahaan - merilis perangkat lunak / kode sumber dengan lisensi MIT, itu berarti bahwa orang lain - individu atau perusahaan dapat "berurusan dengan Perangkat Lunak tanpa batasan". Selama pemberitahuan hak cipta tetap utuh, mereka dapat melakukan apa saja sesuka mereka.
Ini adalah salah satu kasus ketika etika dan legalitas hampir persis sama. Jika seseorang atau kelompok tidak memahami lisensi atau implikasinya maka mereka gagal melakukan uji tuntas. Open Source Initiative menyediakan banyak sumber daya bagus lainnya untuk membantu kami memahami lisensi seperti varian MIT. Mari kita lihat beberapa klausa Definisi Sumber Terbuka mereka:
Menurut bacaan saya, ini tampak sangat jelas: melepaskan sesuatu sebagai sumber terbuka, terutama dengan lisensi MIT, memungkinkan seseorang untuk secara bebas mengambil perangkat lunak, mengubahnya, mengemasnya, dan menjualnya cukup banyak kepada siapa pun yang mereka suka, asalkan tidak t menghapus pemberitahuan hak cipta Anda dan mengklaimnya sebagai karya mereka sendiri .
Sebagai penulis, Anda secara eksplisit menyerahkan hak untuk pilih-pilih dan pilih-pilih. Anda tidak bisa memutuskan siapa atau apa yang bisa mendapat manfaat dari perangkat lunak Anda atau memanfaatkannya, dan Anda tidak bisa memutuskan mengapa mereka menggunakannya. Anda secara eksplisit melepaskan hak itu.
Idenya adalah bahwa Anda berkontribusi untuk kebaikan yang lebih besar dengan secara eksplisit menolak segala hak hukum yang Anda miliki untuk mengendalikan dan membatasi penggunaan dan perubahan apa yang telah Anda buat. Jika Microsoft ingin membayar proyek FluffBall Anda dan menjualnya seharga $ 2rb per kursi seperti WindowsSpongeCake, mereka bisa. Bukankah membiarkan orang melakukan apa pun yang mereka inginkan adalah inti dari proyek Anda?
Agak! Pertama, gunakan lisensi yang sesuai dengan tujuan dan keinginan organisasi Anda. Jika Anda tidak ingin ada orang yang menggunakannya dengan cara yang tidak Anda setujui, Anda mungkin seharusnya tidak merilisnya sebagai Open Source - dan terus terang Anda mungkin tidak boleh melepaskannya sama sekali! Jika Anda tidak ingin orang lain menggunakan karya turunan (seperti garpu) pada proyek komersial, Anda mungkin harus menggunakan versi copyleft dari GPL . Jika Anda menginginkan lisensi nonkomersial, Anda mungkin harus memberi tahu pengacara hak cipta / lisensi, karena ini sering tidak dianggap perangkat lunak "open source" sama sekali dan tidak ada lisensi pra-tertulis utama untuk mendukung kasus ini.
Masalah dengan Xamarin dan Coco kerfuffle bukan masalah etika atau legalitas - ini tentang pertarungan internet antara beberapa orang yang memiliki daging sapi satu sama lain. Kita semua manusia, itu terjadi. Tampaknya merupakan hasil dari ketidakmampuan untuk berkolaborasi / bekerja sama, kemungkinan karena konflik kepribadian atau visi yang tidak sesuai tentang bagaimana proyek harus ditangani.
Jadi cara pertahanan lain adalah terbuka untuk kolaborasi dan perubahan, tetapi pahami bahwa jika itu tidak berhasil dan visinya berbeda ... yah, itulah alasan untuk opsi bercabang dan memiliki proyek terpisah Anda sendiri.
Sangat manusiawi dan dapat dimengerti untuk perasaan kepemilikan dan popularitas untuk membuat proyek perangkat lunak sangat, sangat rumit. Tetapi tujuan dari open source adalah mencoba untuk melampaui itu dan memungkinkan perangkat lunak terbaik tersedia secara bebas untuk semua.
Intinya, perjelas tujuan Anda saat Anda memutuskan lisensi, dan pahami implikasinya bagi kontrol dan arah proyek Anda di masa depan. Jika Anda hanya ingin menyumbang untuk kebaikan yang lebih besar, open source adalah cara untuk melakukannya. Jika Anda ingin mengontrol proyek Anda lebih erat dan memiliki kepemilikan dan setidaknya kasus hukum jika seseorang mencoba memasarkan proyek Anda atau menyerapnya sendiri (sebagian atau seluruhnya), Anda akan memerlukan lisensi yang berbeda dan mungkin perlu atasi dengan pengacara.
sumber
Melepaskan proyek di bawah lisensi MIT memberi orang izin untuk membayar proyek. Bagian dari filosofi di balik perangkat lunak bebas adalah memberi pengguna dan pengembang hak untuk menggunakan, memodifikasi, dan merilis perangkat lunak dengan cara yang biasanya tidak diizinkan. Jika Anda tidak ingin orang melakukan ini, maka jangan gunakan lisensi MIT. Anda tidak dapat benar-benar mengeluh ketika orang menggunakan kode di bawah ketentuan lisensi yang telah Anda berikan kepada mereka.
Garpu adalah hal yang cukup normal terjadi di komunitas perangkat lunak bebas. Sepertinya pengembang fork mencoba untuk berkontribusi pada proyek asli, dan tidak setuju sehingga mereka berkontribusi pada proyek mereka sendiri. Perangkat lunak bebas mendorong ini agar pengembang tidak terhindar dari memodifikasi perangkat lunak karena pemilik tidak menyukai perubahan mereka.
Juga, dengan merilis sesuatu di bawah lisensi perangkat lunak bebas, Anda mendapat manfaat dari kontribusi orang lain, kontribusi yang mungkin tidak Anda terima jika berada di bawah lisensi yang berbeda. Jika Anda menerima kontribusi di bawah lisensi, Anda harus menghormati ketentuan lisensi itu sendiri.
Salah satu cara untuk mempertahankan kontrol atas versi resmi adalah dengan mengandalkan hal-hal seperti merek dagang. Mozilla Corporation misalnya memiliki merek dagang di Firefox yang memungkinkan mereka menentukan apa yang dapat dilakukan orang dengan Firefox meskipun itu open source (Lihat Iceweasel untuk fork dari ini).
Lisensi lain seperti LGPL masih memungkinkan fork, tetapi tetap buka kodenya. Dengan cara ini, Anda setidaknya bisa memasukkan perubahan apa pun dari garpu ke proyek asli Anda, dan mendapat manfaat dari pengembangan di garpu. Kode LGPL dapat menggunakan kode berlisensi MIT apa pun sehingga jika Anda ingin lebih mengontrol proyek, Anda bisa menggunakan LGPL.
sumber
Saya tidak akan menyebutnya tidak etis. Saya akan menyebutnya tidak sportif. Ada harapan tidak tertulis bahwa Anda akan memberikan upaya dengan niat baik untuk meningkatkan versi aslinya sebelum memutuskan untuk bercabang, dan tampaknya penulis asli merasa bahwa upaya itikad baik tidak dilakukan.
Yang sedang berkata, cara terbaik untuk menghindari perangkat lunak Anda bercabang adalah untuk responsif terhadap permintaan pelanggan sedemikian rupa sehingga perangkat lunak Anda memiliki daya tarik seluas mungkin. Tidak ada yang akan memberikan dukungan kepada garpu jika mereka tahu yang asli lebih unggul. Selain itu, satu-satunya perlindungan Anda adalah mengubah persyaratan lisensi.
sumber
Banyak orang mengacaukan situasi hukum dan etika. The X11 lisensi memungkinkan setiap orang untuk "menggunakan, menyalin, memodifikasi, menggabungkan, mempublikasikan, mendistribusikan, mensublisensikan, dan / atau menjual salinan Perangkat Lunak, dan untuk mengizinkan orang kepada siapa Perangkat Lunak ini untuk melakukannya", jadi ini pasti hukum .
Secara etis, ini lebih rumit. Di komunitas open source, umumnya dianggap lebih baik untuk meningkatkan perangkat lunak asli daripada membuat garpu. Di tautan yang Anda berikan , Miguel de Icaza mengatakan:
Tidak jelas mengapa mereka "tidak bisa berkolaborasi bersama", tetapi sepertinya Xamarin melakukan upaya yang masuk akal untuk mengerjakan proyek asli sebelum memutuskan untuk membayarnya.
Secara hukum, Anda dapat memilih untuk menggunakan lisensi yang tidak mengizinkan percabangan dengan melarang redistribusi kode sumber (pada titik ini, itu tidak akan menjadi "perangkat lunak bebas"). Pilihan lain adalah membiarkan kode tidak terbebani tetapi tidak mengizinkan redistribusi aset statis seperti gambar atau teks non-kode (beberapa game memiliki lisensi seperti ini).
Secara sosial, Anda dapat mencegah percabangan dengan:
Perangkat lunak forking banyak pekerjaannya, dan kebanyakan orang waras tidak akan melakukannya jika mereka memiliki pilihan yang lebih mudah. Jika mereka tidak memiliki pilihan lain, maka mencegah mereka memalsukan kode Anda hanya akan memaksa mereka untuk memalsukan kode orang lain atau menulis ulang perangkat lunak Anda dari awal. Mungkin memperlambat mereka, tetapi itu tidak akan banyak membantu Anda.
Selain itu, menggunakan lisensi yang lebih ketat akan membuat beberapa orang lebih kecil kemungkinannya untuk berkontribusi. Xamarin tampaknya "berkontribusi secara luas pada Cocos2D-XNA", dan saya ragu mereka akan melakukannya jika lisensi tidak mengizinkan mereka untuk mendistribusikannya kembali.
sumber
Apa yang dilakukan Xamarin adalah legal dan etis ... hampir.
Mari kita lihat perbaikan komit pada lisensi dan perbaikan kesalahan ketik pada readme :
LicenseAndCredit.txt (diff)
Hanya ada satu persyaratan di seluruh Lisensi MIT:
Dan Xamarin melakukan hal terlarang. Xamarin mungkin berpikir bahwa itu membuat lisensi "lebih cantik" untuk memiliki lebih sedikit pemberitahuan hak cipta di atas, tetapi mereka tidak memiliki izin (legal atau etis) untuk menghapus "redundansi".
Tentu saja, jika mereka memperbaiki file lisensi, mereka akan kembali berada di area hukum. Penulis perpustakaan asli mungkin tidak setuju, tetapi dia membuat pilihan lisensi dan dia tidak bisa menyalahkan siapa pun bahwa mereka melakukan apa yang diizinkan lisensi secara eksplisit.
sumber
Adalah teduh untuk memungkinkan orang untuk menarik kesimpulan yang salah tentang kepengarangan kode apa pun yang dikirimkan oleh garpu, bahkan jika legalitasnya dicakup dengan memberikan pemberitahuan yang diperlukan dan sejarah revisi bagi siapa pun yang memilih untuk melihat dari dekat. Jadi mungkin presentasi Xamarin tidak etis, mungkin tidak, tapi saya pikir itulah dasar untuk menilai itu: apakah itu menyesatkan?
Lisensi memberikan izin untuk menggunakan kode dan persyaratan untuk memasukkan pemberitahuan hak cipta yang relevan dengan salinan kode. Itu semua pada level yang cukup rendah. Itu tidak membahas bagaimana Anda harus secara terbuka merangkum siapa yang berkontribusi apa, tetapi hanya karena itu di luar ruang lingkup lisensi dan bukan bagian dari perjanjian hukum tidak berarti apa pun berjalan secara etis . Etika berbeda-beda, tetapi memberikan kredit jujur di mana karena merupakan prinsip yang dipegang secara luas sehingga mudah untuk melihat mengapa gagal melakukannya akan memberikan pelanggaran.
Seperti semua orang bilang tidak ada niat dalam lisensi MIT untuk mencegah percabangan, jadi itu tidak etis dengan sendirinya. Jika "mengubah nama menjadi milik Anda" adalah kode untuk "membuat klaim kredit publik yang tidak pantas Anda dapatkan", maka yakin itu tidak etis jika benar.
Adapun untuk mencegah hal itu terjadi pada Anda: jika Anda ingin menghindari situasi orang lain menyindir bahwa kode Anda adalah milik mereka, maka Anda memerlukan suara keras ketika mengklaim kredit. Jika Anda ingin menghindari situasi seseorang membuat garpu kode Anda yang pada akhirnya mungkin terbukti lebih populer daripada yang asli Anda (baik karena sumber daya mereka yang lebih besar atau hanya berfokus pada kebutuhan pengguna yang "benar") maka saya pikir Anda keluar keberuntungan di OSS. Anda tidak bisa hanya memutuskan untuk menjadi benar jika kelompok lain menginginkan fitur yang berbeda dalam perangkat lunak dari apa yang Anda inginkan, dan jika (dalam pandangan pengguna) Anda salah maka Anda harus kehilangan terlepas dari berada di sana terlebih dahulu. Ini adalah konsekuensi dari prinsip open source utama (atau benar, prinsip perangkat lunak bebas) bahwa penulis tidak mengendalikan perangkat lunak, orang-orang yang menjalankannya melakukannya.
sumber
Perluasan topik merek dagang:
Di Apache Software Foundation, semua kodenya adalah AL. Dan, seperti halnya lisensi BSD yang sedang dibahas di sini, sangat jelas bahwa AL mengizinkan garpu. Titik. Akhir dari diskusi. Bahkan, seperti dibahas dalam jawaban lain, semua lisensi open source yang sebenarnya mengizinkan garpu. Yang mereka kontrol adalah lisensi / penggunaan kode bercabang.
Yayasan Apache telah memilih untuk mendaftar dan mempertahankan merek dagang. Jika beberapa entitas selain dari proyek pondasi fork, oh, 'Apache Tomcat', mereka baik-baik saja ... tetapi mereka tidak dapat menyebutnya Apache Tomcat , dan, ketika kita dapat mempertahankan tanda, mereka tidak dapat menyebutnya Tomcat .
Masalahnya di sini adalah bahwa merek dagang bukan untuk orang yang lemah hati. Jika Anda adalah sekelompok kecil orang, tanpa struktur hukum dan tanpa dana, Anda tidak bisa, secara praktis, menggunakan hukum merek dagang untuk melindungi nama Anda.
Pada akhirnya, hal semacam ini adalah salah satu alasan untuk berbagai yayasan di luar sana.
Dari sudut pandang etis, yah, jika ada pembelahan internal di antara para kontributor, siapa yang mengatakan siapa yang 'pantas' mempertahankan nama itu? Sebaliknya, jika garpu orang luar, mungkin bukan hal yang paling etis di dunia untuk membiarkan namanya tidak berubah. Itu juga bukan tindakan keji.
Github penuh dengan garpu . Terkadang orang mengubah nama, atau paket Java, atau apa pun - terutama jika mereka ingin mempublikasikan ke Maven central. Seringkali tidak, dan pengguna dibiarkan menavigasi kebingungan. Ini tidak ideal, tapi itu adalah istirahat dengan anarki.
sumber