Saya membuat program berdasarkan proyek LGPL, dan saya tidak diizinkan mempublikasikan kode sumber

13

Saya pikir LGPL adalah lisensi yang permisif, seperti MIT, BSD atau Apache. Tetapi hari ini saya membaca, bahwa hanya menghubungkan ke LGPL (perpustakaan dll) diperbolehkan dari kode sumber tertutup - selain itu, itu copyleft - jadi saya harus menerbitkan kode yang didasarkan pada program LGPL.

Saya membuat sebuah program untuk majikan saya yang didasarkan pada program LGPL, tetapi memiliki banyak modifikasi untuk itu. Tentu saja, saya tidak diizinkan untuk meletakkan kode sumber yang dimodifikasi di luar sana. Pada saat yang sama, saya harus, jika saya mendistribusikannya (kan?).

Jadi saya bertanya-tanya apakah ada solusi untuk ini, sehingga saya dapat menyimpan sumber tertutup ini (saya berharap bisa menerbitkan sumbernya) - ada saran?

Ide saya: dapatkah saya menempatkan sebagian besar fungsi aplikasi LGPL asli ke perpustakaan eksternal, menulis inti yang dapat dieksekusi dari awal, tetapi merujuk kembali ke perpustakaan untuk semua fungsi yang belum saya modifikasi?

Saat ini, semuanya ada dalam file .jar (ini Java / Swing). jika Anda berpikir ide saya secara hukum / teknis layak - berapa banyak usaha untuk memisahkan apa yang saya tulis dan apa yang asli? Saya bukan yang paling jawa java.

Esuus
sumber
Dalam posting ini , orang itu mengatakan "Selain itu LGPL dapat dielakkan dengan hanya meletakkannya di dll baru dan menggunakan delegasi atau antarmuka untuk memanggilnya dari kode sumber LGPLed." - dapatkah seseorang menjelaskan sedikit lebih banyak bagaimana saya melakukan ini dengan aplikasi Java asli?
16
ini bukan situs web hukum , saya tidak akan menerima saran tentang masalah hukum dari siapa pun di sini, kecuali saran untuk mendapatkan nasihat hukum nyata tentu saja.
5
LGPL sebagian besar berkaitan dengan distribusi dan Anda belum memberi kami informasi tentang cara Anda berencana untuk mendistribusikan kode ini. Pertanyaannya tidak mungkin untuk mendapatkan jawaban yang akurat sampai Anda melakukannya. Dalam hal apa pun, saya akan menegaskan kembali bahwa Anda tidak boleh mengambil nasihat hukum dari internet .
Rein Henrichs
Saya percaya bahwa saya sekarang memahami LGPL dengan cukup baik dalam hal legalitas. Jadi saya benar-benar bertanya kepada kalian tentang bagaimana cara membuatnya bekerja secara teknis - meskipun Anda tentu saja benar - jika ragu saya akan berkonsultasi dengan pengacara.
Esuus
Anda tidak mengatakan perangkat lunak apa yang Anda gunakan, tetapi beberapa penyedia perangkat lunak GPL / LGPL (dan lainnya) memberikan lisensi komersial untuk orang-orang dalam situasi Anda.
Jaydee

Jawaban:

13

Pertama-tama, mengambil nasihat hukum di sini (seperti dalam: internet) bukan ide yang baik.

Kedua, dan ini hanya saya yang berbicara, bukan pengacara, Anda harus sudah memikirkan itu sebelum Anda mengambil program LGPL dan mengubahnya untuk majikan Anda.

Jika lisensi itu sesuatu yang bisa Anda abaikan hanya karena Anda tidak menyukainya, tidak ada gunanya memilikinya sekarang?

Jika Anda dan / atau perusahaan Anda tidak bersedia mempublikasikan kode sumber dengan modifikasi Anda, Anda harus berhenti menggunakan kode LGPL dan menyingkirkannya.

Sekali lagi, itu hanya saya yang berbicara.

Dapatkan saran dari pengacara sungguhan.


Menanggapi pertanyaan Anda tentang menghindari lisensi dengan menambahkan kode ke DLL, saya akan menganggap itu akan bekerja dengan cara berikut.

Apa yang akan Anda lakukan adalah mengubah program asli cukup untuk membuatnya dapat memanggil fungsi di perpustakaan eksternal. Anda harus melakukannya tanpa membuat potongan kode khusus untuk kebutuhan Anda, perpustakaan, nama fungsi, dll.

Perubahan-perubahan yang Anda terbitkan, sesuai persyaratan lisensi.

Kemudian Anda membuat perpustakaan eksternal Anda sendiri dengan kode hak milik Anda sendiri dan meminta program itu untuk memuat dan menjalankannya, menggunakan modifikasi yang Anda buat itu.

Tidak mengetahui sepenuhnya lisensi LGPL, saya tidak bisa mengatakan apakah itu cukup untuk menghindari harus menerbitkan perpustakaan Anda meskipun saya curiga akan melakukannya.

Namun, sekali lagi ...

Dapatkan saran dari pengacara

Lasse V. Karlsen
sumber
4
Perhatikan bahwa FSF, yang menulis keluarga lisensi GPL, mempertimbangkan tautan dinamis untuk membuat karya turunan, sehingga mungkin tidak berfungsi. (Orang lain berpikir FSF salah.) Saya tidak berpikir ada tekad yang sah, meskipun saya mungkin salah.
David Thornley
Betulkah? Saya yakin Anda tahu lebih banyak tentang ini daripada saya, David, tetapi wikipedia mengatakan bahwa Anda bahkan dapat menautkan secara dinamis ke perpustakaan berlisensi GPL tanpa harus menerbitkan di bawah GPL: "Misalnya, pengecualian penautan GPL memungkinkan program yang tidak melisensikan diri mereka sendiri di bawah GPL untuk menautkan ke perpustakaan yang dilisensikan di bawah GPL tanpa dengan demikian tunduk pada persyaratan GPL. " Jadi itu membuat saya bertanya-tanya sekarang apa perbedaan antara GPL dan LGPL adalah: Saya pikir hanya LGPL yang mengizinkannya.
Esuus
2
@ Dave: Tim Hukum besar majikan saya tidak akan setuju. Mereka sangat agresif dalam melindungi kekayaan intelektual mereka, dan kami secara eksplisit dilarang menautkan kode GPL ke kode kami sendiri kecuali kami mendistribusikan kode di bawah GPL. Di mana Anda menemukan pengecualian itu? Saya tidak melihatnya di GPLv2 atau v3. Kedengarannya Anda mengacu pada pengecualian penautan yang bukan bagian dari vanilla GPL. Namun, pemilik hak cipta dapat menambahkan pengecualian tautan ke kode GPL mereka atas kebijakan mereka. Berkonsultasi dengan tim Legal seseorang adalah hal terbaik untuk dilakukan.
Batal
5
Saya tidak akan percaya Wikipedia tentang ini. Untuk semua yang Anda tahu, entri ini ditulis oleh seorang anak berusia 14 tahun yang membaca tentang perizinan akhir pekan sebelumnya. Dapatkan saran nyata. Atau, Anda bisa bertaruh pertanian dan berharap perusahaan Anda tidak mendapat masalah. Apapun yang berhasil.
Lasse V. Karlsen
@Menghubungkan ke GPL adalah masalah. Sejauh yang saya tahu, ini adalah salah satu alasan utama FreeBSD untuk menjatuhkan GCC demi Dentang / LLVM .
Legolas
4

Sebagian besar pustaka sumber terbuka yang diterbitkan di bawah LGPL atau lisensi yang sebanding, setidaknya yang cukup baik untuk digunakan dalam proyek Anda, dibangun menggunakan prinsip terbuka / tertutup: http://en.wikipedia.org/wiki/Open/closed_principle .

Anda harus dapat memperbaiki kode Anda sehingga aplikasi Anda ditautkan ke perpustakaan LGPL dan semua ekstensi terkandung dalam kode aplikasi tertutup Anda.

Olaf
sumber
Nah, kode LGPL yang saya gunakan adalah aplikasi, bukan perpustakaan .. jadi pertanyaannya adalah apakah saya bisa mengubahnya menjadi perpustakaan atau - seperti yang disarankan Lasse
ubah
1
@Dave: LGPL dulu dikenal sebagai Library GPL. Saya benar-benar belum melihat aplikasi yang menggunakan lisensi ini. Apa yang Anda gunakan, jika itu bukan rahasia?
Olaf
FSF sekarang menyebutnya GPL Kecil. Satu-satunya penggunaan yang dapat saya pikirkan sekarang untuk aplikasi adalah dapat menautkan di perpustakaan eksklusif dan sejenisnya.
David Thornley
Yang menarik, Mozilla dan OpenOffice.org dilisensikan di bawah LGPL.
Esuus
@ Dave: Lalu aku dengan @ David Thornley. Mozilla menyediakan sarana untuk membuat plug-in khusus yang dapat menjadi kode tertutup. Saya tidak begitu terbiasa dengan OpenOffice, tapi saya yakin mereka melakukannya. Apakah aplikasi LGPL yang Anda gunakan menyediakan semacam fungsi perluasan, seperti menambahkan plug-in atau memiliki bahasa skrip? Bisakah Anda menggunakan mekanisme itu untuk kode Anda?
Olaf
2

Penafian yang sama: IANAL.

Sesuatu yang belum pernah disebutkan oleh orang lain sejauh ini adalah bahwa bahkan jika Anda memisahkan kode, Anda masih harus mendistribusikan kode sumber ke bagian LGPL, atau setidaknya memberikan informasi tentang di mana mereka dapat diunduh.

Satu-satunya cara untuk menyiasatinya adalah dengan tidak mendistribusikannya sejak awal.

Per Johansson
sumber
2

Saya tidak berpikir bahwa Anda memerlukan pengacara untuk memahami bahwa mencoba menghindari lisensi bukanlah hal yang baik. Akal sehat sudah cukup.

Sebagai gantinya, Anda dapat menghubungi penulis asli program LGPL dan meminta / membeli untuk lisensi yang berbeda dan kepemilikan.

Satu-satunya alternatif lain adalah melepaskan sumber atau menulis ulang sepenuhnya.

perbaikan
sumber
1

IANAL, TINLA, dll.

Saya pikir LGPL adalah lisensi yang permisif, seperti MIT, BSD atau Apache. Tetapi hari ini saya membaca, bahwa hanya menghubungkan ke LGPL (perpustakaan dll) diperbolehkan dari kode sumber tertutup - selain itu, itu copyleft - jadi saya harus menerbitkan kode yang didasarkan pada program LGPL.

Ya, LGPL mengharuskan Anda menyediakan kode sumber kepada siapa pun yang menerima salinan karya, atau Anda harus mendistribusikan karya Anda dalam bentuk di mana penerima perangkat lunak dapat mengganti versi Anda dari karya LGPL dengan yang baru. Versi: kapan. Dalam kedua kasus tersebut, semua modifikasi pada bagian LGPL dari karya harus tersedia untuk semua penerima karya.

Saya membuat sebuah program untuk majikan saya yang didasarkan pada program LGPL, tetapi memiliki banyak modifikasi untuk itu. Tentu saja, saya tidak diizinkan untuk meletakkan kode sumber yang dimodifikasi di luar sana. Pada saat yang sama, saya harus, jika saya mendistribusikannya (kan?).

Benar. Lisensi mengamanatkan bahwa semua penerima perangkat lunak harus diberi akses ke kode sumber.

Ide saya: dapatkah saya menempatkan sebagian besar fungsi aplikasi LGPL asli ke perpustakaan eksternal, menulis inti yang dapat dieksekusi dari awal, tetapi merujuk kembali ke perpustakaan untuk semua fungsi yang belum saya modifikasi?

Itu mungkin merupakan karya turunan, dan Anda masih akan diminta untuk mendistribusikan semua skrip pembuatan yang menghapus program ke pustaka.

Saat ini, semuanya ada dalam file .jar (ini Java / Swing). jika Anda berpikir ide saya secara hukum / teknis layak - berapa banyak usaha untuk memisahkan apa yang saya tulis dan apa yang asli? Saya bukan yang paling jawa java.

Java menambahkan sejumlah besar masalah baru ke LGPL, karena tidak jelas apa yang dimaksud dengan tautan "statis" dan "dinamis". Karena pengecualian LGPL atas GPL bergantung pada konsep itu, LGPL benar-benar setara dengan GPL dalam banyak kasus. Anda perlu berkonsultasi dengan tim hukum perusahaan untuk menjawab pertanyaan apa pun yang akan diajukan.

Saran saya adalah jika ada orang di luar perusahaan Anda yang memiliki akses ke program, memo dan mulai lagi. Jika Anda tidak dapat memenuhi persyaratan lisensi, maka Anda tidak diizinkan untuk mendistribusikannya sama sekali.

Jika program hanya akan tersedia di dalam perusahaan, maka Anda hanya perlu menyediakan sumber bagi karyawan perusahaan. Saya sarankan menambahkannya ke kontrol sumber perusahaan Anda yang ada. Ini akan memenuhi persyaratan LGPL, selama tidak ada orang di luar perusahaan yang memiliki akses.

greyfade
sumber
1

Anda dapat menggunakan pola adaptor dan jangan menyentuh kode asli. LGPL juga memungkinkan Anda mewarisi kelas dan menimpa fungsionalitas kelasnya di proyek Anda sendiri.

langit
sumber
0

Ini adalah pemahaman saya, IANAL.

Periksa teks versi LGPL yang mencakup kode yang Anda gunakan. Saya percaya bahwa persyaratannya adalah kode LGPL apa saja harus bisa swap-out-bisa - biasanya dengan menggunakan perpustakaan bersama / file jar. Jika Anda dapat memisahkan kode yang Anda gunakan yang LGPL akan menjadi perpustakaan, Anda dapat melepaskannya di bawah LGPL, sambil melepaskan aplikasi Anda di bawah lisensi apa pun yang Anda suka.

Sean McMillan
sumber
0

Anda tidak dapat menghindari lisensi. Bahkan jika Anda menemukan celah, itu masih tidak etis (meskipun itu pertanyaan yang berbeda untuk sebagian orang). Yang BISA Anda lakukan adalah menghubungi pembuat peranti lunak tersebut, menjelaskan situasinya, dan meminta lisensi terpisah. Jika ia bersedia memberi Anda lisensi khusus untuk suatu harga, Anda dapat membandingkannya dengan biaya penulisan ulang perangkat lunak Anda tanpa menggunakan komponen yang dimaksud. Dan cukup gunakan yang lebih murah.

Tamás Szelei
sumber