20 Mayıs 2017 Cumartesi

Özgür Yazılım mı Açık Kaynak mı?

Yazılım lisansları son kullanıcı tarafında neredeyse hiç okunmayan metinler olmalarına rağmen yazılım geliştiriciler arasında bile yaygın olarak okundukları söylenemez. Elbette son kullanıcının yazılım lisansıyla ilişkisi geliştiriciden çok farklıdır. Elindeki yazılımı nasıl değiştireceği, başka bir yazılım içinden nasıl çağırabileceği, statik mi dinamik mi derlemesi gerektiği, kendi koduna birlikte dahil edebileceği yazılımların lisanslarının nasıl olması gerektiği gibi konularla ilgilenmez son kullanıcı. Bu bahsettiğim durumlarda geliştiricilerin nasıl davranması gerektiği lisans metinlerinde genellikle ayrıntılı olarak tarif edilir.

Son kullanıcı genellikle yazılımı özgürce kullanabiliyor mu, başkasıyla paylaşabiliyor mu, gelecekte de kullanabilecek mi, güvenli mi gibi konularla ilgilenir. Son kullanıcının yazılımın lisansını okumadan da onunla ilgili neler yapabileceğini öğrenmesinin bir yolu yazılım lisansının hangi sınıfa girdiğini ve o sınıftaki yazılımların belirleyici özelliklerini bilmesidir. Eğer yazılım bir özgür yazılımsa onunla yapılabilecek şeyler çok kısa ve net bir şekilde belirlidir [1]. Biraz daha fazla madde içeren açık kaynak bir yazılımın şartları da net olarak tarif edilmiş durumdadır [2]. Örneğin elde ettiğiniz yazılım GPLv3 ile lisanslanmışsa ve bu lisansın bir özgür yazılım lisansı olduğunu biliyorsanız diğer ayrıntılarla çok ilgilenmeden onu gönül rahatlığıyla kullanabilirsiniz.

Özgür yazılım ve açık kaynak lisanslarıyla ilgili şartları okuduğunuzda aradaki farkı kolayca anlamanız mümkün olmayabilir. Bu sizi tedirgin etmesin zaten büyük kalabalıkların da durumu böyle. Bir yazılıma açık kaynak dediğinizde biri sizi "hayır o özgür yazılım" diye uyarıyorsa "arada ne fark var?" diye sorun. Çok büyük ihtimalle açıklayamayacaktır. Bu yazıyı çok uzatmamak için aradaki kavramsal ayrılıkları bir başka yazıya bırakıp burada hangi lisanslar özgür yazılım, hangileri açık kaynak kategorisine giriyor göstermek istiyorum.

Hangi lisansların özgür yazılım kategorisine girdiğini görmek isteyenler buraya [3], açık kaynak yazılım lisanslarının hangileri olduğunu görmek isteyenler buraya [4] bakabilirler. Özgür yazılımla ilgili bağlantıya bakarsanız (biliyorum çoğunluk bakmayacak) hangi lisansların GPL-uyumlu olduğunu, hangilerinin GPL uyumlu olmasa da özgür yazılım olduğunu görebilirler. Hangi lisansların özgür yazılım lisansı olarak kabul edilmediği de nedenleriyle birlikte açıklanmış durumda. Bir lisansın GPL-uyumlu olması o lisansla yazılmış bir kodun GPL lisanslı bir yazılıma dahil edilip dağıtılabileceği anlamına gelir.

GPLv3 uyumlu özgür yazılım ve açık kaynak lisansları


Aşağıdaki lisanslar hem GPLv3-uyumlu özgür yazılım lisansları, hem de açık kaynak lisanslarıdır. Sayıları sizi şaşırtacak kadar fazla olan bu lisansların listesi şöyle:
  • 2-clause BSD License (BSD-2-Clause)
  • 3-clause BSD License (BSD-3-Clause)
  • Apache License 2.0 (Apache-2.0)
  • Artistic License 2.0 (Artistic-2.0)
  • Boost Software License (BSL-1.0)
  • CeCILL License 2.1 (CECILL-2.1)
  • EU DataGrid Software License (EUDatagrid)
  • eCos License version 2.0
  • Educational Community License, Version 2.0 (ECL-2.0)
  • Eiffel Forum License V2.0 (EFL-2.0)
  • GNU Affero General Public License version 3 (AGPL-3.0)
  • GNU General Public License version 2 (GPL-2.0)
  • GNU General Public License version 3 (GPL-3.0)
  • GNU Lesser General Public License version 2.1 (LGPL-2.1)
  • GNU Lesser General Public License version 3 (LGPL-3.0)
  • Historical Permission Notice and Disclaimer (HPND)
  • ISC License (ISC)
  • MIT License (MIT)
  • Mozilla Public License 2.0 (MPL-2.0)
  • Python License (Python-2.1)
  • Sleepycat License (Sleepycat)
  • Universal Permissive License (UPL)
  • W3C License (W3C)
  • wxWindows Library License (WXwindows)
  • Zope Public License 2.0 (ZPL-2.0)
  • zlib/libpng license (Zlib)

GPLv3 uyumlu olmayan özgür yazılım ve açık kaynak lisansları

Bazı özgür yazılım lisansları GPL-uyumlu olmayabiliyor. Genel Kamu Lisansının diğer özgür yazılım lisanslarından farkını daha önce yazmıştım, belki okumak isteyebilirsiniz şimdi [1]. GPL uyumlu olmadığı halde özgür yazılım lisansı olan lisansların sayısı da az değil. Bunların arasından açık kaynak lisansı olarak da adı geçenlerin listesi de şöyle:
  • Academic Free License 3.0 (AFL-3.0)
  • Apple Public Source License (APSL-2.0)
  • Common Public Attribution License 1.0 (CPAL-1.0)
  • Eclipse Public License 1.0 (EPL-1.0)
  • European Union Public License, Version 1.1 (EUPL-1.1)
  • IBM Public License 1.0 (IPL-1.0)
  • LaTeX Project Public License 1.3c (LPPL-1.3c)
  • Lucent Public License Version 1.02 (LPL-1.02)
  • Microsoft Public License (MS-PL)
  • Microsoft Reciprocal License (MS-RL)
  • Mozilla Public License 1.1 (MPL-1.1)
  • Nokia Open Source License (Nokia)
  • Open Software License 3.0 (OSL-3.0)
  • PHP License 3.0 (PHP-3.0)
  • Q Public License (QPL-1.0)
  • RealNetworks Public Source License V1.0 (RPSL-1.0)
  • Sun Public License 1.0 (SPL-1.0)
  • Zero Clause BSD License (0BSD)

Açık kaynak olduğu halde özgür yazılım olmayan lisanslar

Peki açık kaynak olduğu halde özgür yazılım lisansı olarak kabul edilmeyen lisanslar neler? diye soruyor olmalısınız şimdi? Eğer özgür yazılımın ve açık kaynağın şartlarını okumuşsanız bunun kolay kolay sağlanamayacak bir durum olduğunu biliyor olmalısınız ama [3] ve [4] adreslerinde adı geçen ve bu şartı sağlayan sadece bu kadar az lisans olduğunu okumak sizi şaşırtacaktır sanırım. Eğer bu lisanslardan biriyle lisanslanmış bir yazılıma açık kaynak derseniz doğruyu söylemiş olurken, özgür yazılım derseniz hatalı bilgi vermiş olursunuz.
  • NASA Open Source Agreement 1.3 (NASA-1.3)
  • Reciprocal Public License 1.5 (RPL-1.5)
  • Sybase Open Watcom Public License 1.0 (Watcom-1.0)
Buraya kadar sabırla okuduysanız bütün özgür yazılımların doğal olarak açık kaynak olduğunu biliyor olmalısınız. Bu bilgilerden sonra neredeyse bütün açık kaynak yazılımların da özgür yazılım olduğunu görmüş oldunuz.

Arada hiç mi fark yok?

Her ne kadar neredeyse bütün açık kaynak yazılımlar özgür yazılım olmanın kriterlerini yerine getiriyor olsalar da doğrusu yazılım kendisini nasıl tanımlıyorsa o terimi kullanmaktır. Örneğin Genel Kamu Lisansı ile lisanslanmış bir yazılım kendini açık kaynak olarak tanımlıyorsa ona açık kaynak demek doğrusudur ama tersini söylemekte de teknik olarak hatalı bir durum olmadığı herkesçe açık olmalı.

Özgür yazılım ve açık kaynak aynı şey mi?

Yukarıda okuduğunuz şeylere rağmen özgür yazılım ve açık kaynak farklı dünya görüşlerini temsil eden fikirler. Bu konu hakkında ayrı bir yazı okumak isterseniz buradan okuyabilirsiniz.

[1] http://www.nyucel.com/2017/05/genel-kamu-lisansnn-gpl-onemli-fark.html
[2] http://www.nyucel.com/2017/05/ack-kaynak-sadece-kaynak-koda-erisim.html
[3] https://www.gnu.org/licenses/license-list.html
[4] https://opensource.org/licenses/alphabetical

Ö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 ö...