Anda dapat menggunakan program GPL dari program Anda sendiri tanpa program Anda dipengaruhi oleh GPL, tetapi Anda tidak dapat menautkan kode GPL ke program Anda sendiri tanpa program Anda tunduk pada ketentuan GPL.
Dalam contoh yang disediakan dalam pertanyaan, di mana Anda telah menulis pembungkus GUI di sekitar program baris perintah yang ada, GUI Anda tidak terikat oleh ketentuan GPL, asalkan itu adalah program terpisah yang menjalankan program GPL dalam pisahkan proses dan berkomunikasi dengannya hanya melalui antarmuka yang ada - misalnya, melalui baris perintah dan / atau melalui stdin / stdout.
Beberapa bit yang relevan dari FAQ GPL :
Di mana garis antara dua program yang terpisah, dan satu program dengan dua bagian? Ini adalah pertanyaan hukum, yang akhirnya akan diputuskan oleh hakim. Kami percaya bahwa kriteria yang tepat tergantung pada mekanisme komunikasi (eksekutif, pipa, rpc, pemanggilan fungsi dalam ruang alamat bersama, dll.) Dan semantik komunikasi (jenis informasi apa yang dipertukarkan).
Jika modul termasuk dalam file yang dapat dieksekusi yang sama, mereka pasti digabungkan dalam satu program. Jika modul dirancang untuk dijalankan tertaut bersama dalam ruang alamat bersama, itu hampir pasti berarti menggabungkannya menjadi satu program.
Sebaliknya, pipa, soket dan argumen baris perintah adalah mekanisme komunikasi yang biasanya digunakan antara dua program yang terpisah. Jadi ketika mereka digunakan untuk komunikasi, modul biasanya adalah program yang terpisah. Tetapi jika semantik komunikasi cukup intim, bertukar struktur data internal yang kompleks, itu juga bisa menjadi dasar untuk mempertimbangkan dua bagian sebagai digabungkan ke dalam program yang lebih besar.
Dapatkah saya merilis program tidak bebas yang dirancang untuk memuat plug-in yang tertutup GPL?
Itu tergantung pada bagaimana program memanggil plug-in-nya. Misalnya, jika program hanya menggunakan garpu dan exec sederhana untuk memanggil dan berkomunikasi dengan plug-in, maka plug-in adalah program yang terpisah, sehingga lisensi plug-in tidak membuat persyaratan tentang program utama.
Jika program secara dinamis menautkan plug-in, dan mereka membuat panggilan fungsi satu sama lain dan berbagi struktur data, kami percaya mereka membentuk program tunggal, yang harus diperlakukan sebagai perpanjangan dari program utama dan plug-in. Untuk menggunakan plug-in yang dicakup GPL, program utama harus dirilis di bawah GPL atau lisensi perangkat lunak bebas yang kompatibel dengan GPL, dan bahwa persyaratan GPL harus diikuti ketika program utama didistribusikan untuk digunakan dengan ini plug-in.
Jika program secara dinamis menautkan plug-in, tetapi komunikasi di antara mereka terbatas untuk menjalankan fungsi 'utama' dari plug-in dengan beberapa opsi dan menunggu untuk kembali, itu adalah kasus batas.
Perhatikan bahwa GPL berlaku sepenuhnya untuk program baris perintah yang mendasari dalam hal apa pun - jika Anda mendistribusikannya (sebagai lawan meminta pengguna memperolehnya dari sumber lain), Anda bertanggung jawab untuk menyediakan salinan GPL kepada pengguna, membuatnya jelaskan kepada mereka bahwa program baris perintah ada di bawah GPL (bahkan jika pembungkus GUI tidak), dan membuat kode sumber program baris perintah tersedia untuk mereka berdasarkan permintaan. Dari FAQ GPL lagi:
Jika orang-orang mendistribusikan perangkat lunak yang dilindungi GPL menyebutnya “bagian dari” sistem yang diketahui sebagian pengguna adalah hak milik, pengguna mungkin tidak yakin akan hak mereka terkait perangkat lunak yang dilindungi GPL. Tetapi jika mereka tahu bahwa apa yang telah mereka terima adalah program gratis plus program lain, berdampingan, hak-hak mereka akan jelas.
Penafian standar: Saya bukan pengacara dan, bahkan jika saya pengacara, saya bukan pengacara Anda . Jika Anda membutuhkan jawaban yang pasti, berkonsultasilah dengan profesional hukum yang sesuai yang memiliki izin praktik di yurisdiksi Anda.
Tergantung apa yang Anda maksud dengan menggunakannya?
Ini juga tergantung pada versi / varian GPL yang mana kode lainnya berada.
Penafian hukum: Saya bukan pengacara.
sumber
Itu tergantung pada seberapa tepatnya program Anda "menggunakan" program GPL. FAQ GPL memiliki penjelasan yang agak panjang , tetapi masih banyak terbuka untuk interpretasi:
Saya pikir dalam contoh Anda tentang GUI yang ada terutama untuk memanggil program baris perintah GPL, keduanya jelas membentuk satu program, jadi Anda harus melepaskan kode Anda di bawah GPL.
sumber
Tidak.
Kode GPL hanya dapat digunakan oleh kode GPL lainnya.
Mengutip baris pertama artikel GPL wikipedia :
Selain itu, GPL memiliki beberapa halaman dan ada dalam beberapa versi.
Peringatan, kata-kata kasar pribadi di depan!
Saya pribadi sangat tidak menyukai lisensi GPL karena sifatnya yang sangat membatasi dan seperti virus. Mereka menyebutnya "gratis" tetapi sebenarnya justru sebaliknya, kode GPL tidak dapat digunakan oleh apa pun kecuali kode GPL lainnya. Dengan demikian memaksa proyek lain ke GPL atau dipaksa untuk menulis ulang seluruh pustaka, apakah proyek Anda saat ini adalah open source atau tidak. Ada proyek-proyek open-source besar, seperti freeBSD misalnya yang dipaksa untuk menulis ulang ratusan ribu baris kode linux karena lisensi mereka tidak kompatibel, itu terlalu "gratis" dalam arti "melakukan apa pun yang Anda inginkan", yang jelas tidak kompatibel dengan GPL.
Jika Anda ingin lisensi yang benar-benar "bebas" dalam arti "melakukan apa pun yang Anda inginkan", saya sarankan lisensi BSD atau MIT ... sebenarnya, sebagian besar lisensi lainnya OK. Hanya GPL yang benar-benar bermasalah karena seberapa ketatnya itu dan bagaimana memaksa orang lain ke dalamnya. Terakhir, ini terlalu rumit.
Ah, ya, itu juga tiket satu arah. GPL dapat menggunakan kode / pustaka yang dilisensikan dari sebagian besar lisensi, tetapi pustaka / kode ini tidak dapat menggunakan kode GPL secara bergantian.
sumber