Asumsikan ada perpustakaan yang dilisensikan di bawah GPL. Saya ingin menggunakannya adalah proyek sumber tertutup. Saya mengikuti:
- Buat aplikasi pembungkus kecil di sekitar perpustakaan GPL yang mendengarkan soket, parsing pesan, dan panggil perpustakaan GPL. Kemudian hasil kembali.
- Lepaskan sumbernya (untuk mematuhi GPL)
- Buat klien untuk pembungkus ini di aplikasi utama saya dan jangan merilis sumber.
Saya tahu bahwa ini menambah overhead yang besar dibandingkan dengan penghubung statis / dinamis, tetapi saya tertarik dengan cara teoretis.
Jawaban:
Secara hukum , saya akan mengatakan itu tidak apa-apa (tapi saya bukan pengacara - berkonsultasi dengan pengacara untuk nasihat hukum).
Secara moral , ini cukup tercela. Jika Anda tidak menyukai GPL, maka solusi "yang tepat" adalah tidak menggunakan pustaka GPL.
Sunting : Untuk memperjelas, apa pun kedudukan hukum GPL berkenaan dengan apakah penghubung dinamis diizinkan atau tidak, LGPL secara khusus dibuat dengan maksud untuk memungkinkan penautan dinamis dalam kasus perpustakaan. Jadi tampak jelas bagi saya bahwa dengan memilih GPL di atas LGPL, penulis perpustakaan melakukannya secara eksplisit untuk melarang tautan dinamis. Menggunakan cara teknis untuk mengatasi pembatasan hukum yang menyatakan maksud eksplisit penulis untuk kode-nya adalah apa yang patut dicela, menurut pendapat saya.
Sebagai catatan, saya pribadi bukan penggemar GPL (saya lebih suka lisensi yang lebih permisif seperti MIT atau BSD). Namun, saya penggemar berat menghargai karya pengembang lain, dan jika mereka tidak ingin Anda menautkan perpustakaan mereka dengan perangkat lunak sumber tertutup, maka itu adalah hak prerogatif.
sumber
IANAL tapi saya yakin Anda baik-baik saja, bagian yang relevan dari GPL3 ada di akhir bagian 5:
Ini mungkin tergantung pada apa yang 'klien' Anda lakukan, jawaban mouviciel mungkin panduan yang baik tentang bagaimana melakukannya dengan aman
Jika Anda berpikir aplikasi Anda merupakan perpanjangan dari perpustakaan daripada sesuatu yang digabungkan dengan itu maka Anda mungkin benar (Anda harus berada di tempat yang baik untuk mengetahui hal ini) dalam hal ini taruhan terbaik Anda adalah menghubungi penulis dan mencoba untuk mendapatkan lisensi yang berbeda
ini tampaknya mendukung posisi saya bahwa ini secara eksplisit diizinkan oleh GPL, dengan asumsi dilakukan dengan benar.
sumber
Lihat Saya ingin memasukkan perangkat lunak yang dilindungi GPL dalam sistem hak milik saya. Bisakah saya melakukan ini?
Pertanyaannya adalah, apakah aplikasi pembungkus Anda dapat digunakan sendiri? Jika Anda membuat versi baris perintah dari program Anda yang merupakan GPL, Anda dapat melepaskan GUI di bawah lisensi yang berbeda. Misalnya Anda bisa membuat IDE untuk gcc yang ditutup sumber atau alat visual diff berdasarkan diff.
Namun, jika Anda membungkus pustaka tidak ada gunanya selain digunakan oleh program Anda, dan Anda tidak akan menggunakan pustaka ini tanpa pustaka ini, maka itu adalah karya turunan dan perlu dirilis di bawah GPL.
sumber
IMO, secara hukum tidak apa-apa. (IANAL) Untuk meningkatkan sisi moral dari masalah ini, jangan menyebutnya "pembungkus FooBar yang membuat FooBar legaly tersedia untuk MyClosedApp", sebut itu server. Jadikan program open source kecil yang "memungkinkan untuk melakukan FooBar melalui internet". Letakkan di SourceForge atau persembahkan situs web untuknya, dengan halaman proyek dan instruksi serta hal-hal lainnya. Lalu biarkan "MyClosedApp" cukup gunakan "server FooBar".
sumber
Sejauh yang saya mengerti, Anda dapat meninggalkan perangkat lunak Anda sumber tertutup selama ia dapat melakukan tugasnya tanpa pustaka GPL. Lihat perpustakaan GPL sebagai plugin yang ketidakhadirannya tidak membuat perangkat lunak Anda menjadi tidak berguna.
sumber
Ada juga opsi yang agak kontroversial. Di bawah sebagian besar legislatif, tautan dinamis harus dibatasi pada "pekerjaan turunan". Logika di balik ini adalah, bahwa sementara secara dinamis menghubungkan Anda hanya termasuk file header di program Anda. Dalam banyak undang-undang, file header dianggap sebagai definisi API dan secara eksplisit dikecualikan dari hak cipta. Di sisi lain, dengan tautan dinamis, tautan sebenarnya dengan perpustakaan GPL dilakukan pada sistem pengguna akhir. Tapi seperti yang saya katakan, ada banyak kontroversi dengan itu, Stallman sangat menentang FUD ini.
sumber
Apakah sah bagi Adam Brown untuk menulis sebuah program yang menggunakan pustaka GPL dan bertindak sebagai "server", jika ia merilis semua kode sumber untuk semua yang terkait dengannya, tetapi satu-satunya kode klien yang ia rilis cukup lemah karena itu saja dia menulis sisi klien? Saya tidak melihat dasar untuk berpikir itu tidak akan.
Jika Charles Dover menemukan "server" Adam Brown dan memutuskan untuk menulis program sumber tertutup untuk berkomunikasi dengannya, apakah GPL akan membatasi tindakannya dengan cara apa pun? Saya tidak bisa melihat, karena satu-satunya penggunaan perangkat lunak GPL adalah sebagai binari yang ia terima dari Adam Brown. Jika dia mendistribusikan binari Adam, dia juga harus menyertakan tautan ke sumbernya, tetapi tidak ada hal lain dalam GPL yang akan memengaruhi kode Charles apa pun.
Berkenaan dengan satu orang yang menulis server berlisensi GPL, dan kemudian menggunakan server untuk keperluan sumber tertutupnya sendiri, saya tidak akan berpikir harus ada masalah hukum jika dalam menulis server ia membuat upaya yang bonafid untuk membuatnya berguna bagi orang lain yang mungkin ingin menggunakan kode GPL yang disediakan dengan cara yang sama. Secara khusus, dokumentasi antarmuka yang dirilis secara publik harus cukup untuk memungkinkan programmer yang kompeten baik menulis kode untuk server yang akan diterima oleh program klien seperti aslinya, dan untuk menulis program klien yang akan menggunakan server dengan cara yang sama dengan aplikasi penulis.
sumber