Apakah sumber terbuka yang melisensikan kode saya membatasi saya nanti?

29

Misalkan saya mengembangkan perpustakaan yang bermanfaat dan memutuskan untuk menerbitkannya sebagai sumber terbuka. Beberapa waktu kemudian saya memiliki bisnis yang perlu melakukan sesuatu yang tidak sesuai dengan lisensi open source. Apakah saya diizinkan melakukan itu?

Bagaimana saya harus mempublikasikan perangkat lunak dengan cara yang saya miliki dan tidak menghalangi diri saya untuk menggunakan perpustakaan di masa depan dengan cara apa pun?

Perlu diingat bahwa setidaknya secara teori, pengembang lain dapat memutuskan untuk berkontribusi pada proyek open-source saya. Dapatkah saya menentukan dalam lisensi bahwa saya sebagai pengembang asli mendapatkan kepemilikan atas kontribusi mereka juga? Jangan salah paham di sini, saya tidak mencoba untuk menjadi jahat dan mendapatkan kepemilikan atas karya orang lain - Saya hanya ingin mempertahankan kepemilikan saya, dan jika seseorang memposting perbaikan bug penting saya dapat dianggap tidak dapat menggunakan kode asli kecuali Saya menggunakan karyanya juga.

konfigurator
sumber
6
Melepaskan di bawah satu lisensi tidak menghalangi Anda untuk melepaskannya di bawah lisensi lain - lagipula, Anda masih memiliki kodenya. Kode sumber memiliki lisensi ganda (atau tri-, atau lebih) sepanjang waktu.
Catatan untuk diri sendiri - pikirkan nama

Jawaban:

44

Anda selalu menjaga kepemilikan di bawah lisensi sumber terbuka. Karya yang Anda buat adalah milik Anda, dan Anda dapat melakukan apa pun yang Anda inginkan dengannya, (dalam batas hukum, tentu saja), termasuk mengizinkan orang lain untuk menggunakannya di bawah ketentuan lisensi open-source. Jika Anda ingin menggunakannya untuk proyek berpemilik, Anda dapat melakukannya, kecuali jika Anda telah sepenuhnya menyerahkan hak kepada orang lain melalui kontrak. Tapi ini bukan apa yang dilakukan lisensi open-source. Mereka tentang berbagi manfaat, bukan tentang melepaskan kepemilikan.

Segalanya menjadi sedikit stiker begitu orang lain mulai berkontribusi. Maka itu adalah pekerjaan mereka, bukan milik Anda, dan Anda perlu mendapatkan izin mereka. Satu hal yang dapat Anda lakukan adalah menerbitkan perpustakaan Anda di bawah lisensi ganda. Itulah yang dilakukan oleh Sam Lantinga, pencipta dan pemelihara utama SDL . Karena Apple tidak suka pustaka tautan dinamis untuk iOS, dan mematuhi LGPL dalam aplikasi yang terhubung secara statis lebih banyak masalah daripada nilainya, ia menerbitkan SDL di bawah LGPL dan lisensi komersial untuk aplikasi iPhone statis. Ketika ada orang yang mengirimkan tambalan, ia secara eksplisit meminta izin untuk menyebarkan tambalan mereka di perpustakaan di bawah kedua lisensi, dan jika mereka tidak suka, ia tidak menambahkannya ke basis kode.

EDIT: Contoh saya tidak lagi akurat. Beberapa waktu yang lalu Sam mengubah model (tidak yakin mengapa; mungkin dia hanya bosan dengan kerepotan administrasi) dan sekarang melisensikan SDL di bawah lisensi gaya zlib yang sangat permisif. Tapi dia biasa melakukannya dengan cara ini.

Mason Wheeler
sumber
1
+1 terutama untuk menunjukkan cara menangani kontribusi dari penulis lain.
Frank Shearar
5

Saya bukan pengacara dan ini bukan nasihat hukum. Jika Anda membutuhkan jaminan hukum, sewa pengacara.

Anda benar-benar dapat melisensikan perangkat lunak Anda - Trolltech melakukan itu selama bertahun-tahun dengan Qt, dan Linden Lab melakukannya dengan klien SecondLife.

Anda dapat menggunakan lisensi apa pun yang Anda suka. Beberapa lisensi kompatibel dengan lingkungan komersial tertutup, seperti lisensi Mozilla MPL, MIT dan BSD, dan (saya percaya) Sun CDDL dan lisensi Apache.

Namun, jika Anda memerlukan fleksibilitas untuk merilis perangkat lunak baik sebagai proyek sumber terbuka maupun sebagai produk sumber tertutup, Anda benar-benar diizinkan untuk melakukannya sebagai penulis asli. Satu-satunya masalah adalah masalah kontribusi pengguna. Anda tidak dapat memasukkan kontribusi orang lain ke dalam versi komersial perangkat lunak Anda kecuali jika mereka secara hukum melepaskan Hak Cipta kepada Anda. GNU melakukan ini karena satu-satunya alasan mereka akan memperbarui lisensi mereka di masa depan.

Harap perhatikan bahwa pengguna dan terutama kontributor mungkin tidak akan menyukai ini, sehingga akan memengaruhi komunitas di sekitar proyek Anda, mungkin juga merugikan.

Sekali lagi, konsultasikan dengan pengacara untuk perincian.

greyfade
sumber
MIT, alias lisensi 'lakukan apa pun yang Anda inginkan'.
Evan Plaice
2

Saya bukan pengacara juga, tapi ...

Selain dari pembatasan (yang akan memaksa Anda untuk Open Source setiap proyek yang menggunakannya) lisensi seperti GPL, ada juga non-restriktif (artinya Anda dapat menggunakan perangkat lunak semacam itu dalam proyek komersial) seperti Lesser GPL atau Lisensi Apache (2.0) ?). Jadi mungkin Anda dapat dengan mudah merilis perangkat lunak Anda di bawah ketentuan yang tidak membatasi.

Paweł Dyda
sumber
2
GPL tidak mengubah kepemilikan kode. Jika saya menerbitkan kode pada GPL itu berlaku untuk orang lain yang menggunakan kode - saya punya izin yang saya suka dan saya bisa lakukan dengan itu apa pun yang saya inginkan (namun karena hukum tidak bekerja mundur saya tidak bisa membatasi penggunaan orang yang menggunakan perangkat lunak pada GPL).
Maciej Piechotka
2
Yang saya maksud dengan mengatakan restriktif, adalah GPL memaksa pengguna perpustakaan Anda untuk merilis perangkat lunak mereka di bawah lisensi yang kompatibel dengan GPL, sedangkan lisensi seperti L-GPL, Apache, ... (BSD?) Tidak. Sekarang, saya tidak yakin bahwa jika Anda GPL-ed kode Anda dan seseorang melakukan perubahan padanya, Anda kemudian dapat dengan mudah melepaskannya secara komersial seolah-olah tidak ada yang terjadi. Saya pikir Anda harus menyingkirkan penambahan terlebih dahulu ... Tetapi jika perpustakaan / kerangka kerja ini berlisensi L-GPL, Anda dapat menggunakannya dalam aplikasi komersial sama seperti orang lain, itu sudah pasti. Saya harap ini masuk akal.
Paweł Dyda
Ini persis apa yang saya lakukan ketika saya menulis perpustakaan. Tidak masuk akal untuk merilis perpustakaan komersial, biasanya itu adalah aplikasi pengguna akhir yang akan dirilis dengan cara itu, dan jika itu adalah lisensi non-restriktif saya dapat menggunakan perpustakaan dalam proyek saya. Dan bahkan tidak masalah jika saya menulisnya atau orang lain.
Goran Jovic
@ Goran, Anda dapat menggunakan perpustakaan di proyek Anda sendiri, apa pun lisensinya . Ini perpustakaan Anda, dan proyek Anda: lisensi berlaku untuk orang lain, bukan untuk Anda.
TRiG