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
| Lisans | Ticari kullanım | Kapalı kaynak ürün | Dikkat |
|---|---|---|---|
| MIT | Evet | Evet | Lisans metnini koruyun |
| Apache 2.0 | Evet | Evet | NOTICE dosyası ve değişiklik bildirimi |
| LGPL | Evet | Koşullu | Kütüphanenin değiştirilebilirliği |
| GPL | Evet | Dağıtımda hayır | Dağıtımda kaynak paylaşımı |
| AGPL | Evet | Ağ hizmetinde de hayır | SaaS 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
- Projedeki tüm bağımlılıkların lisans listesini çıkarın (bunun için otomatik araçlar vardır).
- Copyleft lisanslı bileşenleri bilinçli kullanın.
- Lisans metinlerini dağıtımla birlikte verin.
- 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.