2 Mayıs 2017 Salı

Açık kaynak sadece kaynak koda erişim anlamına gelmez!

Açık kaynak (open source) Türkçede nadiren doğru kullanılan bir terim. Özgür yazılım yerine bilerek/bilmeyerek açık kaynak denildiği gibi bazen de sadece kaynak kodun ulaşılabilir olması bile bir yazılıma açık kaynak denilmesine neden olabiliyor. Özgür yazılım ile açık kaynak yazılım arasındaki farkları başka bir yazıya bırakarak burada bir yazılımın açık kaynak yazılım sayılabilmesi için gerekli koşulları açıklayalım.

Açık kaynak girişimi genel kanının aksine özgür yazılım hareketinden çok sonra başlamıştır. Özgür yazılım gönüllülerinin taraftarı olmadıkları bir yazılım felsefesi olsa da açık kaynak yazılımların sadece kaynak kodlarının açık olduğu, başka bir özgürlüğü beraberinde getirmediği fikrini maalesef çok yaygın olarak duyuyoruz. Hatta özel mülk bir yazılımın kaynak kodunu github benzeri bir ortamda görenlerin onu açık kaynak yazılım sanması bile az rastlanır bir şey değil. Aslında son derece açık bir konu olmasına rağmen en çok kafa karışıklığına neden olan konulardan da biri. Bir açık kaynak yazılım lisansının sağlaması gereken şartlar aşağıdaki gibi:


1. Ücretsiz yeniden dağıtım
Bir açık kaynak yazılım lisansı ile yazılımın satışı veya başka yazılımların bir parçası olarak dağıtılması kısıtlanamaz ve bu satışlardan bir pay talep edilemez.

2. Kaynak kod
Programın kaynak kodu içermesi ve derlenmiş haline olduğu gibi kaynak kodun da dağıtılmasına izin vermesi gereklidir. Programın kaynak kodu içermeyen bir biçimi varsa tercihen web adresinden ücretsiz indirilmesine izin verilmelidir. Kaynak kodun bir programcının değiştirebileceği bir biçimde olması gerekir. Kasten karmaşıklaştırılmış veya bir çeviriciden geçirilmiş kodlar kabul edilmez.

3. Türetilen işler
Bir açık kaynak lisansı değişikliklere ve türetilen işlere izin vermeli ve onların özgün yazılımın lisansı ile aynı şartlarda dağıtılmasına izin vermelidir.

4. Yazarın kaynak kodunun bütünlüğü
Lisans yazılımın kaynak kodunun değiştirilmiş halinin dağıtılmasını ancak tek bir durumda kısıtlayabilir. Bunun mümkün olabilmesi için yazılım kaynak koduyla birlikte derleme zamanında kullanılabilecek yama dosyalarının dağıtımına izin verilmelidir. Böyle bir şey yapıldığında lisansta açıkça yazılımın değişiklik yapılmış kaynak koddan derlenebileceği belirtilmelidir. Yazılım kaynak kodda değişiklik yapılıp derlendiğinde isminin veya sürüm numarasının değiştirilmesini gerekli kılabilir.

5. Kişi veya gruplara yönelik ayrımcılık yapılamaz
Yazılım lisansıyla herhangi bir kişiye veya gruba yönelik bir kısıtlama getirilemez. Bazı ülkelerin ticaret kanunları böyle şeyler yapmayı zorunlu kılıyor olabilir ama lisansta bu yasalara uyma gerekliliğini hatırlatılabilir ancak kendisi bu kısıtlamalara dahil olamaz.

6. Çalışma alanına yönelik ayrımcılık yapılamaz
Yazılımın herhangi bir amaç için çalıştırılması engellenemez. Örneğin bir yazılımın ticari kullanım veya genetik araştırmalar için kullanılması kısıtlanamaz.

7. Lisansın dağıtımı
Programa eklenen haklar ayrıca bir sözleşmeye gerek kalmadan programın yeniden dağıtıldığı herkes için geçerli olmalıdır.

8. Lisans bir ürüne özgü olmamalı
Programa eklenen haklar, programın belirli bir yazılım dağıtımının parçası olmasına bağlı olmamalıdır. Program bu dağıtımdan çıkarılır ve lisans koşulları dahilinde kullanılır veya dağıtılırsa, programın yeniden dağıtıldığı tüm taraflar, orijinal yazılım dağıtımı ile birlikte verilenlerle aynı haklara sahip olmalıdır. Örneğin bir ofis paketini açık kaynak lisanslarından biriyle lisansladığınızda bileşenlerinden birinin ancak bu paketle birlikte kullanıldığında lisansla verilen haklara sahip olacağını söyleyemezsiniz. Her bir bileşen ayrı ayrı da kullanılsa lisans aynen geçerli olmalıdır.

9. Lisans diğer yazılımları kısıtlamamalı
Lisans, lisanslı yazılımla birlikte dağıtılan diğer yazılıma kısıtlamalar getirilmemelidir. Örneğin, lisans, aynı ortamda dağıtılan diğer tüm programların açık kaynaklı yazılım olması gerektiğinde ısrar etmemelidir. GPL ile lisanslanan yazılımlar da bu koşulu sağlarlar. Bu koşulu yazılımınızda GPL lisanslı bir kod parçasını veya GPL lisanslı bir kitaplığı kullanmanız durumunda yazılımınızı da GPL ile lisanslamanız gerekmesiyle karıştırmamak gerekir. Bir GNU/Linux dağıtımının açık kaynak lisanslı bir programı dağıtması onun sadece benzer lisanslı yazılımları dağıtabileceği anlamına gelmemesi gibi düşünülebilir.

10. Lisans bir teknolojiye bağımlı olmamalıdır
Lisansın hiçbir hükmü bir teknolojiye veya arayüze bağımlı olmamalıdır. Kullanıcının bir arayüzde koşulları kabul etmesi ve bir düğmeye tıklaması gibi zorunluluklar karşısında alternatifsiz bırakmasına izin verilmemektedir.

Gördüğümüz gibi bir yazılımın açık kaynak lisansına sahip olması onun sadece kaynak kodlarına ulaşılabildiği anlamına gelmediği gibi açık kaynak bir yazılımı alıp kaynak kodunu kapatarak dağıtamazsınız. Açık kaynak yazılım lisanslarının listesine buradan bakabilirsiniz.

Özgür yazılım ile açık kaynağın ne farkı var?

Özgür Yazılım hareketi 1983'de başlayan ve kullanıcıların yazılımları çalıştırma, anlama, değiştirme ve değiştirdikleri halini dağıtma ö...