Genel Kamu Lisansının (GPL) önemli farkı: Copyleft

Özgür yazılım sade ve güçlü bir mekanizma üzerine kurulu bir felsefe. Özel mülk yazılım lisansları nasıl firmaları koruyan hükümler içeriyorsa özgür yazılım lisansları da kullanıcıları, yani toplumu korumaya çalışıyorlar. Bir yazılım lisansının özgür yazılım lisansı kabul edilebilmesi için ilgili yazılımla ilgili aşağıdaki dört temel özgürlüğü garanti etmesi gerekiyor:
  • Yazılımı herhangi bir amaç için çalıştırma özgürlüğü,
  • Yazılımın nasıl çalıştığını öğrenme ve onu değiştirme özgürlüğü,
  • Yazılımı yeniden dağıtma özgürlüğü,
  • Yazılımın değiştirilmiş halinin dağıtılabilmesi özgürlüğü.
Elbette bunlar çok genel hükümler ve bunları sağlayan çok sayıda özgür yazılım lisansı mevcut. Lisans metinleri çoğunlukla ayrıntıları da tanımlayan, özel durumlarda nasıl davranılması gerektiğini tarif eden hukuki metinler. Yazılım geliştiricilerin bu lisans metinlerini okumamak gibi bir lüksü olamaz çünkü yaptıkları iş açısından çok belirleyici metinler bunlar. Yazılımlar hemen hemen her zaman başkalarının yazdıkları kitaplıkları içerdiğinden geliştiricilerin hangi kitaplıkları kendi yazılımına dahil edip edemeyeceğini, hangi kitaplıkları bir arada kullanabileceğini bu metinlerden başka öğrenebilecekleri bir alternatifleri yoktur.

Aslında kullanıcılar da bir yazılımı kullanmadan önce onun getirdiği kısıtlamaları ve sağladığı özgürlükleri öğrenebilmek için bu lisansları okumalı ama hem metinler yer yer teknik ifadeler içeriyor hem de çok uzunlar. Asıl bağlayıcı metinler İngilizce olanlar olmasına rağmen Linux Kullanıcıları Derneğinin kamuoyunun kullanımına sunduğu Özgür Yazılım Lisansları sayfası oldukça yararlı olacaktır. Eğer yazılım geliştiricisi değilseniz özgür yazılımın temel kavramlarını ve kullandığınız yazılımın bir özgür yazılım olduğunu bilmek yeterli bir güven zinciri oluşmasını sağlayabilir.

İdeal bir dünyada yukarıdaki dört şart yeterli olabilecekken günümüz dünyasında özgür yazılımların özel mülk yazılımlara dönüştürülmesinin önüne geçmek için bazı önlemler almak gerekmektedir. Genel Kamu Lisansının yukarıdaki şartlara ek olarak getirdiği en önemli farklılık Copyleft'tir.


Copyleft yazılımınızın mevcut halinin ve/veya değiştirilmiş halinin de özgür yazılım olarak kalmasını garantilemenin bir yoludur. Copyleft bir özgür yazılımı alan kişilere onun özgün halini ve/veya değiştirilmiş halini yine özgür yazılım olarak dağıtmaları gerektiğini söyler. Yani elde ettiğiniz Copyleft özelliğine sahip bir yazılımı aldığınız özgürlükleri aynen devretmeden dağıtamazsınız. Bu şartın bütün özgür yazılımlara ait olmadığını sadece Copyleft'in bir getirisi olduğunu akıldan çıkartmamak gerekir. Bütün özgür yazılımların böyle zorunlulukları yoktur. Bazı özgür yazılım lisansları aldığınız yazılımın kaynak kodunu kapatıp özel mülk yazılım olarak dağıtmanıza bile izin verir. GPL Copyleft özelliğini taşıyan bir özgür yazılım lisansıdır. Özgür yazılımların bir listesi için bu adrese bakabilirsiniz.

Copyright, yani telif hakkı, kullanıcıların özgürlüklerini kısıtlamak için kullanılan bir terim iken Copyleft bu özgürlüklerin devam etmesini garanti altına almaya yöneliktir. Adının çağrıştırdığının aksine Copyleft, Copyright'ın tersi değil onu kullanmanın bir yoludur. Copyleft yazılımın telif hakkından vazgeçmek anlamına gelmediği gibi eğer telif hakkından vazgeçerseniz Copyleft'in kullanımının şartları ortadan kalkmış olur. Yani telif hakkına sahip olmadığınız bir yazılımın nasıl dağıtılacağına zaten karışamazsınız.

Yazdığınız kodu Genel Kamu Lisansıyla nasıl lisanslayabileceğinize dair bu yazıyı da okumak isteyebilirsiniz.

11 Mayıs 2017

Posted In: copyleft, Gezegen, gpl, Lisans, Özgür yazılım

Yazdığınız kodu GPLv3 ile nasıl lisanslarsınız

Bir program geliştirdiğinizde onu bir özgür yazılım lisansıyla lisanslamanız kamunun ondan en büyük faydayı sağlamasına imkan verecektir. Özgür yazılımlar kullanımı, dağıtımı, değiştirilmesi ve değiştirilmiş halinin dağıtılması konusunda kısıtlama getirilemeyecek yazılımlardır. Son zamanlarda yazılımlarını GPL ile lisanslamak isteyen ama bunu nasıl yapacağını pek bilemeyenlerin sayısının hiç de az olmadığını görüyorum. Aslında yapılacak işlem basit olmasına rağmen bir programın GPLv3 ile nasıl lisanslanacağını kısaca özetlemek istiyorum.

En güvenlisi aşağıdaki ifadelerin her kaynak dosyanın başlangıcına eklenmesi:

   (programın adını ve ne yaptığını özetleyen bir satır.)
Copyright (C) (yıl) (yazarın adı)
   This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
   This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
   You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Birden çok dosyadan oluşan programlar için lisanstaki "this program" ifadesini programın adıyla değiştirmek ve lisans bilgisinin başlangıcına “This file is part of NAME” ifadesini eklemek daha uygun olacaktır. Her kaynak dosyanın en azından "copyright" ifadesini içeren satırı ve diğer uyarı mesajlarının nerede bulunacağı bilgisini içermesi gerekir. Kaynak kodla birlikte COPYING veya LICENSE isimli bir dosyada GNU Genel Kamu Lisansının bir kopyasını dağıtmanız gerekmektedir. Geliştiriciye ulaşmak için bir eposta adresi eklenmesi de son derece önemlidir. Yazdığınız program konsoldan kullanıcıyla etkileşime giriyorsa ilk çalıştırıldığında aşağıdaki gibi bir uyarı mesajı vermelidir:
   Gnomovision version 42, Copyright (C) yıl  yazarın adı
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
Buradaki show w ve show c ifadeleri yerine programda uygun karşılıklar nelerse onların yazılması gerektiğini de vurgulamış olalım. Eğer programınız bir grafik arayüze sahipse bu bilgileri Hakkında bölümünde görüntülemelisiniz. GNU Genel Kamu Lisansı programınızın sahipli bir yazılımın içinde kullanılmasına izin vermez. Eğer yazdığınız kod sahipli yazılımların da bağlanmasını istediğiniz bir kitaplık ise onu GNU Kısıtlı Genel Kamu Lisansı ile lisanslamayı düşünebilirsiniz.

1 Mart 2016

Posted In: belge, Gezegen, gpl, Lisans, Özgür yazılım

Twitter Auto Publish Powered By : XYZScripts.com