Arsip: GPL h@ck

more 19 years ago
jrp
Halo rekan-rekan,
Post ini cukup panjang. Silahkan dibaca pelan-pelan.
PERTANYAAN SAYA
Apakah mungkin untuk mengakali dengan cara trik pemrograman/instalasi/logika/apalah untuk membuat program kita (proprietary) yg membutuhkan program GPL, tidak ikut menjadi GPL?
LATAR BELAKANG
Kadang kita mengakses program GPL dari program kita. Misalnya kita pakai Gammu, MySQL, atau yg lainnya, maka kita akan mengakses program GPL tersebut dengan berbagai cara yang tersedia, misalnya penggunaan DLL, API, Messages, atau apalah.
Akses/pemanggilan tersebut --menurut GPL -- akan membuat program kita menjadi GPL juga. Padahal, belum tentu kita mau program kita jadi GPL. Hal ini mungkin dapat diatasi dengan :
1. Ganti program GPL tersebut dengan program non-GPL yg memiliki fungsionalitas sebanding
2. Beli lisensi komersil dari program GPL tersebut (kalau ada)
3. Buat sendiri fungsionalitas yg biasanya kita dapatkan dari program GPL tersebut (ini tidak feasible menurut saya)
4. Bujuk pembuat program GPL tersebut (pemegang hak cipta) untuk memberikan/menjual lisensi khusus pada kita (ini cuma ide, saya tdk tahu dengan pasti apakah GPL membolehkan hal ini. Kayaknya boleh karena MySQL aja bisa dual license)
5. Pakai trik pemrograman/instalasi/logika/hukum/.... supaya program kita tidak ikut jadi GPL.
Saya ingin saya minta pendapat dari rekan-rekan untuk point no 5 ini.
BATASAN
Kita kesampingkan dulu aspek etika, moralitas, dan yg lain selain aspek teknis dan hukum.
SEKEDAR CONTOH KASUS
Misalnya saya buat program komersil dengan Delphi untuk mengirim dan menerima SMS. Untuk keperluan ini saya akses Gammu, karena saya tidak nyaman pakai TComPort atau sejenisnya yg low-level. Pokoknya kita anggap dalam cerita ini, penggunaan Gammu tidak bisa ditawar.
Seperti yg rekan-rekan ketahui, Gammu dapat diakses dengan berbagai macam cara. Nah untuk menghindari GPL, saya "pakai" daemon gammu dengan pemanggilan :
gammu --smsd FILES
Dengan cara ini, kalau saya mau kirim SMS tinggal saya buat file teks dengan nama tertentu, nanti diambil lalu dikirim sama Gammu. Kalau saya mau ambil SMS, tinggal baca file teks yg dihasilkan Gammu.
Jika ada orang yg mau beli program saya, mungkin saya akan lakukan salah satu dari 2 hal ini (tidak tahu mana yg lebih baik) :
A. Beri gammu dalam CD terpisah dengan program saya. Kalo perlu, sertakan sourcenya Gammu juga. Saya bantu dia untuk mengeset file smsdrc. Lalu saya buat file batch kecil yg memanggil gammu --smsd FILES yg harus dijalankan user sebelum memanggil program saya.
B. Minta si pelanggan untuk mendownload gammu, saya bantu dia untuk mengeset file smsdrc, lalu beri batch file seperti yg diatas.
Dengan cara seperti di atas, sepertinya saya tidak melakukan pelanggaran GPL.
- saya tidak memanggil/mengakses API/DLL gammu satu kali pun.
- jika saya melakukan alternatif B, berarti saya sama sekali tidak ikut mendistribusikan gammu
tetapi...program saya tidak dapat berjalan tanpa Gammu :(
Apakah ini cukup sebagai workaround terhadap GPL sehingga program saya tidak jadi GPL juga?
Cerita diatas cuma fiksi belaka. Saya belum pernah pakai gammu --smsd FILES. Yg biasa saya pakai adalah gammu --smsd MYSQL (sangat stabil. dibiarkan berbulan-bulan tidak pernah rewel).
Nah sekian dulu rekan-rekan. Capek ngetiknya :D.
Saya pingin banget dengar pendapat dan trik nge-hack GPL. Kalau sudah pada bosan nge-hack program, sekarang marilah kita coba hack GPL.
jrp
CLAIM
- Saya sangat respek terhadap pembuat Gammu
- Saya tidak berniat jahat kepada siapapun. Saya hanya ingin tahu
- Saya tidak suka efek menular dari GPL, bukan anti GPL secara keseluruhan
- Saya mengakui bahwa kemajuan2 besar di dunia teknologi informasi terjadi karena efek menular GPL
- Saya pakai beberapa program GPL
- Saya suka FLOSS, tapi jujur saja lebih tertarik pada gratis daripada bebas
- Saya belum pernah menemukan "free speech" maupun "free beer" di negara kita...hahaha...ooops
more 19 years ago
_lmz
GPL adalah lisensi... Lisensi adalah dokumen legal. Entah kenapa kok sepertinya dokumen legal itu lebih baik dibawa ke pengacara daripada didiskusikan di forum, apalagi kalau pertanyaannya itu "apakah ini legal". Pada sisi praktisnya, siapa sih yang mau menuntut... emang BSA sekarang melakukan audit software GPL juga?
Saya sendiri merasa bahwa proses pemanggilan dari command line itu tidak ada yang salah, rasanya GPL versi ini hanya membahas runtime linking saja. Untuk jelasnya mungkin bisa baca FAQnya (terutama pertanyaan GPL plugins for non-free program)
Can I release a non-free program that's designed to load a GPL-covered plug-in? It depends on how the program invokes its plug-ins. If the program uses fork and exec to invoke plug-ins, then the plug-ins are separate programs, so the license of the plug-in makes no requirements about the main program.dan
What is the difference between "mere aggregation" and "combining two modules into one program"? Mere aggregation of two programs means putting them side by side on the same CD-ROM or hard disk. We use this term in the case where they are separate programs, not parts of a single program. In this case, if one of the programs is covered by the GPL, it has no effect on the other program. Combining two modules means connecting them together so that they form a single larger program. If either part is covered by the GPL, the whole combination must also be released under the GPL--if you can't, or won't, do that, you may not combine them. What constitutes combining two parts into one program? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged). If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program. By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.juga
I'd like to incorporate GPL-covered software in my proprietary system. Can I do this? You cannot incorporate GPL-covered software in a proprietary system. The goal of the GPL is to grant everyone the freedom to copy, redistribute, understand, and modify a program. If you could incorporate GPL-covered software into a non-free system, it would have the effect of making the GPL-covered software non-free too. A system incorporating a GPL-covered program is an extended version of that program. The GPL says that any extended version of the program must be released under the GPL if it is released at all. This is for two reasons: to make sure that users who get the software get the freedom they should have, and to encourage people to give back improvements that they make. However, in many cases you can distribute the GPL-covered software alongside your proprietary system. To do this validly, you must make sure that the free and non-free programs communicate at arms length, that they are not combined in a way that would make them effectively a single program. The difference between this and "incorporating" the GPL-covered software is partly a matter of substance and partly form. The substantive part is this: if the two programs are combined so that they become effectively two parts of one program, then you can't treat them as two separate programs. So the GPL has to cover the whole thing. If the two programs remain well separated, like the compiler and the kernel, or like an editor and a shell, then you can treat them as two separate programs--but you have to do it properly. The issue is simply one of form: how you describe what you are doing. Why do we care about this? Because we want to make sure the users clearly understand the free status of the GPL-covered software in the collection. If people were to distribute GPL-covered software calling it "part of" a system that users know is partly proprietary, users might be uncertain of their rights regarding the GPL-covered software. But if they know that what they have received is a free program plus another program, side by side, their rights will be clear.For more information, ask your lawyer :P

more 19 years ago
simba
Kalo aku sih... sori kalo terkesan rada oon, maklum gak begitu paham urusan hukum formal terkait lisensi. Alternatif yg biasa aku pake...
1. Jgn tergantung ama GPL-based library. Contoh database, saya usahakan program yg saya bikin gak bener2 terikat dgn database tertentu. Jadi, mau ganti database apa aja (tentu yg masih aku support), tetep bisa jalan.
2. Bikin library baru yg fungsi2-nya mirip dgn library GPL itu. Trik kotornya sih... copy-paste fungsi2 penting dari GPL itu untuk "dicangkokkan" ke dalam library kita sendiri. Kalo mau bersih, ya pelajari algoritma di GPL-nya, trus bikin dgn coding kita sendiri di library kita. Kalo buat short-term project, kayaknya susah, tapi sangat mungkin untuk long-term project.
Tau ah... gelap. :)
more ...
- Pages:
- 1
reply |
Report Obsolete
AI Forward

🚀 We're thrilled to partner with Alibaba Cloud for "AI Forward - Alibaba Cloud Global Developer Summit 2025" in Jakarta! Join us and explore the future of AI. Register now:
https://int.alibabacloud.com/m/1000400772/
#AlibabaCloud #DeveloperSummit #Jakarta #AIFORWARD
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 5 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 5 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 5 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 5 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 5 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 5 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 5 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 13 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 13 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 13 years ago
Random Topic
- [ask]Random gambar
by laguna in Hal umum tentang Pascal Indonesia more 18 years ago - Akte lahir masuk ke database automatis
by belajaraja in Tip n Trik Pemrograman more 15 years ago - Memindahkan data dari Tabel A Ke tabel B
by mully in MySQL more 18 years ago - Mo minta tolong nech...... (disable CTRL-C)
by fissas in Hal umum tentang Pascal Indonesia more 18 years ago - Write wave data .WAV dari array dinamik, simpan di pc.
by yadi in Hal umum tentang Pascal Indonesia more 17 years ago - mencari jumlah subtotal pada seluruh record pada 1 table
by khumaedy in Tip n Trik Pemrograman more 17 years ago - deLogic special post
by deLogic in OOT more 18 years ago - Customer Display Via USB
by dania in Network, Files, I/O & System more 17 years ago - Ask: Deklarasi Variabel Pada MySQL ?
by cyber_hecker in MySQL more 20 years ago - Kelipatan waktu..
by anak_s0leh in Tip n Trik Pemrograman more 17 years ago