Perangkat lunak bebas adalah perihal kebebasan, bukan harga. Untuk memahami konsep ini, Anda harus berpikir tentang kebebasan berbicara, bukan minuman gratis.
Perangkat
lunak bebas adalah tentang kebebasan para pengguna untuk menjalankan,
menyalin, mendistribusikan, mempelajari, mengubah dan meningkatkan
kinerja perangkat lunak. Hal ini berarti bahwa pengguna program memiliki
empat kebebasan yang mendasar:
-
Kebebasan untuk menjalankan program, untuk tujuan apa saja (kebebasan 0).
-
Kebebasan untuk mempelajari bagaimana program itu bekerja, dan mengubahnya sesuai keinginan anda (kebebasan 1). Akses ke kode sumber program merupakan suatu prasyarat untuk poin ini.
-
Kebebasan untuk mengedarkan salinan dari perangkat lunak, sehingga Anda dapat membantu sesama (kebebasan 2).
-
Kebebasan untuk memperbaiki program, dan mempublikasikan versi perbaikan Anda ke khalayak umum sehingga orang lain dapat menikmati keuntungannya (kebebasan 3). Akses pada kode program merupakan suatu prasyarat juga.
Suatu
program merupakan perangkat lunak bebas, bila setiap pengguna memiliki
semua dari kebebasan tersebut. Dengan demikian, Anda seharusnya bebas
untuk menyebarluaskan salinan program, baik dengan atau tanpa
modifikasi, secara gratis atau pun dengan memungut biaya penyebarluasan,
kepada siapapun dan dimanapun. Kebebasan untuk melakukan hal-hal ini
berarti (antara lain) bahwa Anda tidak harus meminta atau pun membayar
untuk mendapatkan ijin guna melakukan hal hal tersebut.
Anda
juga seharusnya memiliki kebebasan untuk membuat modifikasi dan
menggunakannya secara pribadi dalam pekerjaan anda sendiri atau untuk
sekedar bermain main, bahkan tanpa perlu mengumumkan bahwa mereka
(program yang anda modifikasi) ada. Dan jika Anda menerbitkan perubahan
Anda, Anda tidak perlu memberitahu orang tertentu, atau dengan cara
tertentu.
Kebebasan
untuk menjalankan program berarti kebebasan bagi setiap tipe orang atau
organisasi untuk menggunakan program tersebut pada sistem komputer
jenis apa pun, untuk setiap jenis pekerjaan secara keseluruhan dan
tujuan apapun, tanpa perlu untuk mengadakan pembicaraan tentang hal itu
dengan pengembang atau pun pihak lainnya secara khusus. Dalam kebebasan
ini, tujuan pengguna adalah yang penting, bukan tujuan pengembang;
Anda sebagai pengguna dapat bebas untuk menjalankan program untuk
tujuan-tujuan Anda, dan jika kemudian Anda membagikan program itu kepada
orang lain, maka dia bebas untuk menjalankannya sesuai keperluannya,
dan Anda tidak berhak untuk memaksakan tujuan Anda kepadanya.
Kebebasan
untuk menyebarluaskan hasil penggandaan, harus termasuk bentuk biner
atau executable, serta kode sumber, baik untuk versi modifikasi maupun
tidak dimodifikasi. (Mendistribusikan
program dalam bentuk dapat dijalankan secara langsung diperlukan agar
mudah diinstal pada sistem operasi bebas.) Tidaklah menjadi masalah jika
tidak ada cara untuk memproduksi bentuk biner atau executable suatu
program tertentu (karena beberapa bahasa tidak mendukung fitur itu),
tetapi Anda harus memberikan kebebasan untuk mendistribusikan kembali
bentuk tersebut (biner atau executable) yang seharusnya anda temukan
atau mengembangkan cara untuk membuat mereka.
Agar
kebebasan untuk melakukan perubahan, serta mempublikasikan versi
perbaikan, menjadi bermakna, Anda harus memiliki akses ke kode sumber
program. Oleh karena itu, aksesibilitas dari kode sumber adalah syarat mutlak untuk perangkat lunak bebas.
Kebebasan 1 mencakup kebebasan untuk menggunakan versi perubahan pada tempat asalnya.
Jika program disampaikan dalam sebuah produk yang didesain untuk
menjalankan versi perubahan milik seseorang tetapi menolak untuk
menjalankan versi perubahan Anda - suatu praktek yang dikenal sebagai
“tivoization” atau (melalui daftar hitam) sebagai “secure boot” -
kebebasan 1 menjadi fiksi teoretis belaka daripada sebuah praktek
kebebasan. Hal ini tidaklah cukup. Dengan kata lain, binari ini bukanlah
perangkat lunak bebas meskipun dikompilasi dari kode sumber yang
gratis.
Salah
satu cara penting untuk memodifikasi sebuah program adalah dengan
menggabungkan subrutin subrutin dan modul modul yang tersedia secara
bebas. Jika
lisensi sebuah program mengatakan bahwa Anda tidak bisa bergabung
kedalam sebuah lisensi sesuai modul yang sudah ada, seperti jika lisensi
itu mengharuskan anda untuk menjadi pemegang hak cipta kode apapun yang
Anda tambahkan, maka lisensi tersebut terlalu ketat untuk memenuhi
syarat sebagai lisensi bebas.
Agar
kebebasan tersebut menjadi nyata, maka mereka harus bersifat permanen
dan tidak dapat dibatalkan selama anda tidak melakukan hal apa pun yang
salah, jika pengembang perangkat lunak memiliki kekuatan untuk mencabut
lisensi, atau sampai merubah istilah, tanpa anda melakukan sesuatu yang
salah yang memberikan sebab untuk pencabutan itu, maka perangkat lunak
itu tidak bebas.
Namun
demikian, aturan tertentu mengenai tata cara pendistribusian perangkat
lunak bebas dapat saja diterima, jika mereka tidak bertentangan dengan
hakikat inti dari kebebasan. Sebagai contoh, copyleft
adalah aturan bahwa ketika mendistribusikan program, Anda tidak dapat
menambahkan larangan untuk menyangkal orang lain dari hakikat inti
kebebasan. Aturan ini tidak bertentangan dengan hakikat inti dari
kebebasan itu sendiri, justru melindungi mereka.
Perangkat lunak bebas bukan berarti perangkat lunak non-komersial.
Sebuah program bebas harus tersedia untuk penggunaan komersial,
pengembangan komersial, dan distribusi komersial. Pengembangan komersial
dari perangkat lunak bebas bukan lagi hal yang aneh; bebas seperti
perangkat lunak komersial adalah sangat penting. Anda mungkin harus
membayar untuk mendapatkan salinan perangkat lunak bebas, atau mungkin
juga anda mendapatkannya secara cuma-cuma. Tetapi terlepas dari cara
Anda mendapatkan salinan, Anda selalu memiliki kebebasan untuk menyalin
dan mengubah perangkat lunak, bahkan untuk menjual salinan.
Apakah
sebuah modifikasi merupakan suatu perbaikan adalah masalah subjektif.
Jika modifikasi yang Anda lakukan terbatas-secara substansi, pada
modifikasi yang orang lain menganggapnya sebagai perbaikan. Itu bukanlah
kebebasan
Namun,
aturan tentang bagaimana mengemas versi modifikasi dapat diterima, jika
tidak secara efektif membatasi kebebasan Anda untuk mempublikasikan
ulang modifikasinya, atau kebebasan untuk membuat dan menggunakan versi
modifikasi pribadi. Aturan bahwa jika Anda membuat versi anda tersedia dalam cara ini, Anda harus membuatnya tersedia dalam cara itu adalah dapat diterima, pada kondisi yang sama. (Perhatikan
bahwa aturan tersebut masih meninggalkan anda pilihan apakah akan
menerbitkan versi Anda.) Aturan yang memerlukan pelepasan kode sumber
kepada para pengguna untuk versi yang Anda masukkan ke dalam penggunaan
publik juga dapat diterima.
Hal ini juga dapat diterima untuk lisensi yang membutuhkan itu, jika
Anda memiliki versi modifikasi yang telah didistribusikan dan pengembang
sebelumnya meminta salinannya, Anda harus mengirimkannya salinan dari
program itu, atau bahwa Anda mengidentifikasi diri Anda pada versi
modifikasi anda.
Dalam proyek GNU, copyleft digunakan untuk melindungi kebebasan tersebut secara legal bagi semua orang. Akan tetapi perangkat lunak non-copyleft juga ada.
Terkadang
pemerintah mengeluarkan aturan pembatasan ekspor dan sanksi perdagangan
yang dapat membatasi kebebasan Anda untuk menyebarkan salinan program
secara internasional. Pengembang perangkat lunak memang tidak memiliki
kekuatan untuk meniadakan atau mengesampingkan pembatasan ini, tapi apa
yang mereka dapat dan harus lakukan ialah menolak untuk menetapkan
mereka (aturan pembatasan) sebagai prasyarat dari program. Dengan cara
ini, pembatasan tidak akan mempengaruhi kegiatan dan orang-orang di luar
wilayah hukum pemerintah tersebut. Jadi, lisensi perangkat lunak bebas
tidak boleh mengharuskan mentaati peraturan ekspor sebagai salah satu
syarat penting kebebasan.
Ketika berbicara tentang perangkat lunak bebas, sebaiknya jangan menggunakan istilah seperti membagi-bagikan atau gratis, karena istilah tersebut menyiratkan soal harga, dan bukannya kebebasan.
Akhirnya,
perhatikan bahwa kriteria seperti yang dinyatakan dalam definisi
perangkat lunak bebas ini memerlukan pemikiran yang cermat untuk
interpretasi mereka. Jika sebuah lisensi perangkat lunak menetapkan
pembatasan, maka ia bukanlah lisensi perangkat lunak bebas.
0 komentar:
Posting Komentar