Furkan KapukayaYazılım geliştirme
Dijital Temeller2 dk okuma

Açık Kaynak Lisansları: MIT, Apache, GPL Arasındaki Fark

Açık kaynak yazılım lisanslarının türleri, MIT, Apache 2.0, GPL, LGPL ve AGPL arasındaki farklar, ticari projelerde dikkat edilecekler ve lisans değişikliği riskleri.

Bugün yazılan neredeyse her uygulama, onlarca açık kaynak kütüphane üzerine kurulur. "Açık kaynak" ücretsiz demek olsa da kuralsız demek değildir. Her kütüphanenin bir lisansı vardır ve bu lisans, kodu nasıl kullanabileceğinizi belirler.

İki ana aile

İzin verici (permissive) lisanslar

Kodu ticari ürünlerde kullanmanıza, değiştirmenize ve kapalı kaynak olarak dağıtmanıza izin verir. Genellikle tek şart, lisans ve telif metnini korumaktır.

  • MIT: En kısa ve en serbest lisanslardan biridir.
  • Apache 2.0: MIT'e benzer, ayrıca açık bir patent lisansı içerir; kurumsal projelerde sık tercih edilir.
  • BSD: MIT'e benzer, birkaç farklı varyantı vardır.

Karşılıklılık (copyleft) lisansları

Kodu kullanıp dağıttığınızda, ortaya çıkan eserin de aynı lisansla açık kaynak olmasını şart koşar.

  • GPL: Yazılımı dağıtıyorsanız kaynak kodunu da aynı lisansla paylaşmanız gerekir.
  • LGPL: Kütüphane olarak bağlanmasına daha esnek izin verir.
  • AGPL: GPL'e ek olarak, yazılımı ağ üzerinden hizmet olarak sunmayı da dağıtım sayar. SaaS projelerinde en dikkat edilmesi gereken lisanstır.

Karşılaştırma

LisansTicari kullanımKapalı kaynak ürünDikkat
MITEvetEvetLisans metnini koruyun
Apache 2.0EvetEvetNOTICE dosyası ve değişiklik bildirimi
LGPLEvetKoşulluKütüphanenin değiştirilebilirliği
GPLEvetDağıtımda hayırDağıtımda kaynak paylaşımı
AGPLEvetAğ hizmetinde de hayırSaaS için en kısıtlayıcı

Bu tablo genel bir yol göstericidir; hukuki değerlendirme yerine geçmez.

Lisans değişikliği riski

Son yıllarda bazı popüler projeler, bulut sağlayıcılarına karşı korunmak için lisanslarını daha kısıtlayıcı modellere çevirdi; topluluklar da buna karşılık açık kaynak çatallar (fork) oluşturdu. Önbellek sistemlerindeki örnek için Redis yazısına bakabilirsiniz. Kritik bir bağımlılık seçerken projenin yönetişimine ve geçmişine bakmak bu riski azaltır.

Ticari projelerde pratik öneriler

  1. Projedeki tüm bağımlılıkların lisans listesini çıkarın (bunun için otomatik araçlar vardır).
  2. Copyleft lisanslı bileşenleri bilinçli kullanın.
  3. Lisans metinlerini dağıtımla birlikte verin.
  4. Sözleşmede teslim edilen kodun hangi açık kaynak bileşenleri içerdiğini belirtin. Bkz. kaynak kod sahipliği.

Sık sorulan sorular

Lisansı belirtilmemiş bir GitHub projesini kullanabilir miyim?

Lisans yoksa varsayılan olarak tüm haklar sahibine aittir. Kullanmadan önce yazardan izin almak gerekir.

Kendi projemi hangi lisansla yayınlamalıyım?

Herkesin özgürce kullanmasını istiyorsanız MIT veya Apache 2.0; türev çalışmaların da açık kalmasını istiyorsanız GPL ailesi uygundur.

Sonuç

Açık kaynak, yazılım dünyasının en büyük hızlandırıcısıdır; ama lisans kurallarına uyulduğu sürece. Bağımlılıklarınızın lisansını bilmek, ileride oluşabilecek hukuki ve ticari sürprizleri önler.