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.