Neredeyse her yazılım projesi açık kaynak kütüphaneler üzerine kuruluyor. Ticari bir ürün geliştirirken bu kütüphanelerin lisanslarını okuyan ekip sayısı ise çok az. Sorun genelde yıllar sonra, bir yatırım sürecinde ya da büyük bir müşterinin hukuk birimi soru sorduğunda ortaya çıkıyor.
Bu yazı, lisans dünyasını sadeleştirip hangi durumda neye dikkat edilmesi gerektiğini anlatıyor. Hukuki görüş değil, karar verirken kafanı toparlayacak bir çerçeve.
Açık kaynak bedava demek değil
En yaygın yanlış anlama bu. Açık kaynak, kodun görülebilir olması ve belirli şartlarla kullanılabilmesi demek. Şartsız değil. Her lisans bir sözleşme ve kullanırken o sözleşmeyi kabul etmiş sayılıyorsun.
Şartları çiğnemenin sonucu genelde dava değil, itibar kaybı ve ticari kapıların kapanması oluyor. Kurumsal müşteriler ve yatırımcılar artık kullanılan bileşenlerin lisans dökümünü isteyebiliyor.
İki büyük aile: izin veren ve bulaşıcı
Lisansları ikiye ayırmak işi büyük ölçüde kolaylaştırıyor.
Birinci aile izin veren lisanslar. MIT, Apache ve BSD bu grupta. Temel şart, telif bildirimini ve lisans metnini korumak. Kodu ticari üründe kullanabilir, değiştirebilir, kapalı kaynak olarak dağıtabilirsin. Apache lisansı ayrıca patent hakkıyla ilgili açık bir madde içerdiği için kurumsal tarafta rahat kabul görüyor.
İkinci aile karşılıklı paylaşım isteyen lisanslar. GPL ailesi buradaki ana grup. Mantığı şu: bu kodu kullanıp dağıtıyorsan, türev çalışmanı da aynı lisansla açmak zorundasın. Bu, özgür yazılım felsefesinin merkezi ilkesi ve bilinçli bir tercih. Ticari kapalı kaynak ürün geliştiriyorsan bu lisansla gelen kütüphaneyi doğrudan içine gömmek büyük risk.
Arada duran bir grup daha var. LGPL, kütüphaneyi değiştirmeden bağladığın durumda daha esnek davranıyor. AGPL ise ağ üzerinden hizmet vermeyi de dağıtım sayıyor, yani sunucunda çalıştırıp web servisi olarak sunman bile kaynak açma yükümlülüğü doğurabiliyor. Bulut hizmeti kuran şirketler için bu madde belirleyici.
Kullanmak ile dağıtmak arasındaki fark
Çoğu yükümlülük dağıtım anında doğuyor. Kodu sadece kendi içinde kullanıyorsan, örneğin şirket içi bir araç yazdıysan, birçok lisansta ek yükümlülük oluşmuyor. Ama ürünü müşteriye kurduğunda, uygulama mağazasına koyduğunda ya da cihazın içine gömdüğünde dağıtım başlıyor.
AGPL bu dengeyi bilinçli olarak bozuyor ve ağ üzerinden erişimi de kapsıyor. Bu yüzden bir kütüphanenin AGPL olduğunu görmek, bulut ürünü geliştiren ekipler için durup düşünme işareti.
Yapay zeka modelleri ayrı bir dünya
Son yıllarda açık ağırlıklı modeller yaygınlaştı ama bunların çoğu klasik açık kaynak lisansı kullanmıyor. Bazıları kullanım alanını kısıtlıyor, bazıları belirli kullanıcı sayısının üzerinde ayrı anlaşma istiyor, bazıları çıktıyla başka model eğitmeyi yasaklıyor.
Yani açık ağırlıklı olması, istediğin gibi kullanabileceğin anlamına gelmiyor. Model kartındaki lisans bölümünü okumak, kütüphane lisansı okumaktan daha önemli hale geldi. Bu konudaki güncel tartışmaları yapay zeka kanalında takip edebilirsin.
Pratik bir düzen kurmak
Karmaşık bir süreç kurmaya gerek yok. Küçük bir ekipte şu dört adım yeterli.
Bağımlılık listesini otomatik çıkar. Paket yöneticilerinin çoğu kullanılan kütüphanelerin lisanslarını listeleyen araçlarla çalışıyor. Bunu derleme sürecine eklemek, listeyi her zaman güncel tutuyor.
Kırmızı çizgi belirle. Örneğin kapalı kaynak ürün geliştiriyorsan GPL ve AGPL kütüphaneleri doğrudan bağımlılık olarak eklememeyi kural haline getir. İstisna gerekiyorsa tek tek değerlendir.
Bildirim dosyasını ürünle birlikte dağıt. İzin veren lisansların neredeyse tamamı telif bildiriminin korunmasını istiyor. Uygulama içinde lisanslar bölümü açmak bu şartı karşılıyor.
Kod kopyalarken dikkat et. İnternette bulduğun bir kod parçasını projeye yapıştırmak, o kodun lisansını projene taşımak demek. Bu, farkında olmadan en çok yapılan ihlal.
Kendi kodunu açarken
Projeni açık kaynak yapmayı düşünüyorsan lisans seçimi stratejik bir karar. Mümkün olduğunca yaygın kullanılsın istiyorsan MIT ya da Apache mantıklı. Ticari şirketlerin kapalı ürününe gömmesini istemiyorsan GPL ailesi bunu sağlıyor. Ticari sürüm satmayı planlıyorsan, çift lisanslama modeli bir seçenek.
Lisans koymadan yayınlanan depo ise en belirsiz durum. Lisans yoksa varsayılan olarak tüm haklar saklı sayılıyor, yani teknik olarak kimse kullanamıyor. Depoya bir lisans dosyası koymak, açık kaynak yapmanın ilk adımı.
Paylaş
inovanadolu

Henüz yorum yok
İlk yorumu sen yaz
Bu yazı hakkında ilk sözü söyleyen sen ol. Deneyimini paylaş, katılmadığın yeri yaz ya da merak ettiğini sor.