GPL di tempat kerja?

12

Saya pernah mewawancarai di sebuah perusahaan konsultan di mana muncul dalam percakapan bahwa mereka menggunakan produk-produk open source (yang hebat, saya telah menggunakan Hibernate, JBoss, dll.). Satu hal yang mengejutkan saya adalah ketika saya bertanya apakah mereka menggunakan OS berlisensi GPL saat menulis aplikasi untuk klien, mereka berkata, "Tentu, sepanjang waktu! Selama klien mendapatkan apa yang mereka inginkan dan bahagia." Sekarang, saya bukan pengacara atau penggemar lisensi besar, tetapi saya mendapat kesan bahwa menggunakan kode GPL (katakanlah beberapa perpustakaan yang Anda masukkan), maka Anda diharuskan untuk merilis seluruh aplikasi di bawah lisensi yang sama. Ketika saya menunjukkan hal ini, saya diberi tanggapan cepat, "Ya, kami memberi klien semua kode sumber ketika kami selesai, jadi itu benar-benar bukan masalah."

Tidak ingin membahas masalah ini lebih lanjut (wawancara bukan tempat untuk argumen seperti itu), saya membiarkannya. Namun, itu masih mengkhawatirkan saya tentang praktik bisnis itu. Apa kata resmi pada kode berlisensi GPL dan seberapa "terbuka" itu perlu? Apakah Anda harus menerbitkannya dan mengatakan "Perusahaan saya menggunakan perpustakaan ini jadi di sini adalah situs di mana Anda dapat mengunduh aplikasi sistem pemenuhan belanja dan pemesanan yang kami keluarkan untuk membangun jutaan dolar."? Dalam situasi ini, apakah perusahaan berhak menggunakan kode GPL tanpa sepengetahuan klien? Apakah cukup dengan hanya "memberi mereka sumbernya"?

Ryan Hayes
sumber

Jawaban:

15

Penafian standar berlaku: Saya bukan pengacara dan Anda juga tidak.

GPL, pada intinya, adalah tentang melindungi hak-hak mereka yang menggunakan program untuk mendapatkan dan menggunakan sumbernya juga. Ini tidak mandat bahwa Anda mempublikasikan sumber dari setiap program yang Anda tulis yang menggunakan lisensi GPL kode, hanya bahwa jika Anda mempublikasikan program seperti itu Anda juga harus menyediakan sumber.

Saya dapat menulis sejumlah aplikasi untuk penggunaan pribadi saya, menarik kode GPL, dan tidak pernah memberikan sumber semua ini kepada siapa pun. Saya dapat menulis aplikasi semacam itu untuk penggunaan internal oleh perusahaan saya, dan hanya perlu memberikan sumber kepada orang-orang di perusahaan saya yang menggunakan program (secara praktis, saya harus tetap melakukan ini jika mereka punya alasan yang baik untuk memintanya). Jika saya menulis program semacam itu untuk beberapa entitas lain, saya hanya perlu memberi mereka kode (dan menjelaskan bahwa program itu berlisensi GPL) - jika mereka melanjutkan untuk mendistribusikannya, mereka juga harus kemudian menyediakan sumbernya, tapi aku kehabisan gambar.

Jadi satu-satunya kekhawatiran perusahaan konsultan Anda mungkin memiliki adalah bahwa mereka gagal membuat klien mereka sadar akan lisensi kode yang mereka berikan berada di bawah. Sebenarnya, saya berbohong - jika mereka telah menegosiasikan lisensi yang berbeda dengan klien mereka (klien memiliki semua hak untuk kode ...) maka mereka bisa berada dalam air panas lebih dari itu juga ... Tapi ini berlaku untuk kode pihak ketiga : kecuali domain publik, Anda harus mematuhi lisensi, dan tidak boleh melisensikan ulang kecuali jika hak itu telah diberikan kepada Anda oleh pemegang hak cipta.

Shog9
sumber
1
Namun Anda benar AGPL lebih ketat pada itu
@Pierre: benar, dalam arti Anda tidak bisa keluar dari memberikan sumber kepada pengguna Anda dengan tetap berpegang pada aplikasi server.
Shog9
1
Menarik. Jadi, dalam GPL standar, jika Anda menulis aplikasi SaaS, maka Anda tidak diharuskan untuk memberikan sumber karena Anda tidak secara teknis "mendistribusikan" aplikasi itu sendiri?
Ryan Hayes
2
@Ryan: benar. Yah, Anda tidak diharuskan untuk memberikannya kepada pengguna Anda . Siapa pun yang mendapatkan kode yang dikompilasi masih mendapatkan sumbernya.
Shog9
7

Sebagai seorang konsultan, saya membuat poin untuk mengangkat masalah lisensi lebih awal dengan pelanggan saya sehingga mereka dapat membuat pilihan berdasarkan informasi. Jika teknologi terbaik untuk diterapkan pada masalah mereka adalah di bawah GPL tetapi mereka tidak dapat mematuhi lisensi, maka saya tidak dapat menggunakannya. Dalam praktiknya, ini memiliki dua efek.

Pertama, banyak yang senang membayar untuk produk komersial khusus untuk menghindari masalah ini. Ini sangat umum di dunia sistem embedded di mana kepatuhan terhadap GPL akan secara efektif memerlukan penerbitan desain perangkat keras yang lengkap dan mendokumentasikan bagaimana semuanya bekerja untuk memenuhi semangat GPL yang merupakan upaya untuk memungkinkan pengguna akhir untuk mengubah produk. . Meskipun dimungkinkan untuk membuat produk yang seterbuka itu, dibutuhkan banyak komitmen di semua tingkatan perusahaan. Masalah yang lebih besar adalah bahwa banyak komponen desain didokumentasikan kepada kami oleh pembuatnya di bawah NDA dan secara efektif tidak mungkin untuk membuat kode yang sesuai dengan GPL yang menggunakan dokumentasi yang dirilis di bawah NDA.

Kedua, kami sekarang memiliki preferensi untuk lisensi MIT dan banyak kerabatnya (yang menjelaskan bahwa penggunaan komersial dapat diterima) daripada GPL di setiap revisi. Saya belum memiliki objek pelanggan untuk merilis perbaikan bug dan peningkatan yang dilakukan kembali ke komunitas produk yang relevan. Karena lisensi ini permisif, saya dapat mematuhi kewajiban NDA saya, membuat pelanggan saya senang, dan berkontribusi pada komunitas yang relevan.

RBerteig
sumber
2

Open source tidak harus berarti gratis.

IANAL juga, tetapi secara umum persyaratan untuk GPL adalah menyediakan kode sumber untuk proyek Anda. Anda tentu bisa menjual produk ke orang lain. Namun, saya percaya bahwa Anda tidak dapat mencegah mereka memberikannya. Mungkin itulah yang membuat sebagian besar perangkat lunak GPL gratis, seperti bir. Saya cukup yakin bahwa Anda tidak harus mempublikasikan kode Anda ke world + dog hanya karena GPL.

Dari pembukaan ke v3 GPL (tekankan sendiri):

Lisensi untuk sebagian besar perangkat lunak dan pekerjaan praktis lainnya dirancang untuk menghilangkan kebebasan Anda untuk berbagi dan mengubah karya. Sebaliknya, Lisensi Publik Umum GNU dimaksudkan untuk menjamin kebebasan Anda untuk berbagi dan mengubah semua versi suatu program - untuk memastikannya tetap menjadi perangkat lunak gratis untuk semua penggunanya. Kami, Yayasan Perangkat Lunak Bebas, menggunakan Lisensi Publik Umum GNU untuk sebagian besar perangkat lunak kami; itu berlaku juga untuk karya lain yang dirilis dengan cara ini oleh penulisnya. Anda dapat menerapkannya pada program Anda juga.

Ketika kita berbicara tentang perangkat lunak bebas, kita merujuk pada kebebasan, bukan harga. Lisensi Publik Umum kami dirancang untuk memastikan bahwa Anda memiliki kebebasan untuk mendistribusikan salinan perangkat lunak gratis (dan membebankan biaya untuknya jika Anda mau), bahwa Anda menerima kode sumber atau bisa mendapatkannya jika Anda menginginkannya, bahwa Anda dapat mengubah perangkat lunak tersebut. atau gunakan potongan itu di program gratis baru, dan Anda tahu Anda bisa melakukan hal-hal ini.

( sumber )

Dalam situasi ini, apakah perusahaan berhak menggunakan kode GPL tanpa sepengetahuan klien? Apakah cukup dengan hanya "memberi mereka sumbernya"?

Ini pertanyaan yang sedikit berbeda. Jika klien memiliki beberapa harapan dan harapan itu ditentukan dalam kontrak, perusahaan mungkin memiliki masalah. Kalau tidak, terserah mereka untuk menentukan cara terbaik untuk melakukan pekerjaan itu. Namun, mereka seharusnya memasukkan pemberitahuan dalam kode sumber mengenai lisensi. Saya tidak yakin apakah mereka harus mengungkapkan hal ini kepada klien mereka dengan cara lain.

George Marian
sumber
2
GPL tidak mengharuskan Anda mempublikasikan sumber secara aktif, tetapi mengharuskan Anda menerbitkan kepada pengguna fakta bahwa program tersebut adalah GPL dan bahwa Anda akan mengirimkan sumber berdasarkan permintaan (mungkin dikenakan biaya penanganan yang adil dan masuk akal). Dalam praktiknya, persyaratan yang terakhir sering ditangani oleh tarball atau zip di URL yang dapat diberikan berdasarkan permintaan. Sebagai konsultan, Anda memiliki kewajiban untuk memberi tahu klien Anda apa beban mereka jika mereka mendistribusikan pekerjaan Anda kepada orang lain, karena mereka menjadi penerbit di bawah GPL.
RBerteig
@RBerteig Terima kasih atas klarifikasi. Sudah lama sejak saya menggali melalui persyaratan lisensi.
George Marian
"Kamu pasti bisa menjual produk ke orang lain. Namun, aku yakin kamu tidak bisa mencegah mereka memberikannya." Tergantung pada apakah Anda memberi mereka sesuatu di bawah GPL atau jika Anda adalah pemegang hak cipta asli dan melisensikan ulang kepada mereka di bawah lisensi yang berbeda.
endolith
-5

Tidak, kamu benar. Inilah sebabnya:

Pertimbangkan apakah kami memiliki aplikasi di bawah GPL. Sekarang, itu tidak dapat digunakan oleh kode berpemilik.

Jika cukup hanya dengan membuka kode sumber yang menggunakan GPL, saya bisa membuka sumber proyek berdasarkan itu sebagai BSD.

Kemudian perangkat lunak berpemilik dapat menggunakan produk GPL.

alternatif
sumber
4
Ini tidak masuk akal. GPL tidak menyatakan bahwa kode hak milik tidak dapat menggunakannya. GPL adalah tentang distribusi, seperti yang dinyatakan oleh jawaban C dengan jelas. Singkatnya - Anda tidak diperbolehkan mendistribusikan perangkat lunak yang menggunakan kode GPL kecuali Anda juga mendistribusikan kode sumber untuk perangkat lunak tersebut di bawah lisensi yang kompatibel.
dash-tom-bang
1
Kode eksklusif tidak dapat menggunakan kode GPL. Itu bagian dari alasan keberadaan lisensi.
alternatif
Itu semua tergantung pada apa yang Anda maksud dengan "kode hak milik". Jika maksud Anda, "kode yang Anda miliki" maka ini tidak masuk akal - GPL tidak dapat mengambil hak cipta Anda, jadi kecuali Anda menetapkannya pada FSF atas kemauan Anda sendiri, Anda masih memiliki kode yang Anda tulis . OTOH, jika maksud Anda, "kode yang ingin Anda bagikan di bawah lisensi yang tidak sesuai dengan GPL" maka Anda benar - sama seperti Anda dapat memperoleh dan menggunakan sumber yang Anda bangun, Anda berkewajiban untuk memberikan hak kepada pengguna Anda hak ini ke sumber Anda. Sekali lagi, ini tentang distribusi - tidak ada orang yang tidak dapat memperoleh program Anda memiliki hak untuk kode Anda.
Shog9
@Pak. C oleh kode hak milik saya maksudkan kode yang tidak kompatibel dengan GPL. Dan kode yang didistribusikan ke klien sehingga ... Tapi ya, aku ada pengacara jadi saya mungkin salah.
alternatif
2
-1, jawaban yang menyesatkan. Ini hanya berlaku untuk beberapa definisi "penggunaan" dan "hak milik". Sebagai contoh, saya dapat membuat produk Linux yang disematkan, dan hanya melepaskan kernel dan kode Linux yang terhubung langsung ke kode kernel, tetapi bukan UI saya atau aplikasi lain yang kebetulan dijalankan pada kernel GPLed. Banyak hubungan seperti itu ada. Ambiguitas dalam penggunaan "hak milik" ini sudah dibahas. Juga, di sebagian besar yurisdiksi, "pekerjaan untuk disewa" hanya diberikan kepada pihak yang mempekerjakan pengembang untuk mengkodekannya tidak sama dengan distribusi. IANAL, dll.
HedgeMage