Merhaba,

Bugün yazımda, bana en çok gelen sorulardan birisini cevaplamaya çalışacağım. Açık kaynak yazılımlar için hangi lisans türleri kullanılmaktadır?

Bu konuya derinlemesine dalmak için en basitten başlayalım. Yazılım lisansı dediğimiz zaman, belirli bir yazılım parçasını nasıl kullanabileceğimizi tanımlayan yasal bir anlaşmadan bahsediyoruz. Yani bir yazılım geliştiricisinin ortaya çıkardığı yazılımın nasıl kullanıldığı, değiştirildiği ve paylaşıldığı ile ilgili belirli hakları, izinleri belirlemek için bir yazılım lisansı türü seçmesi önemlidir. Örneğin, bazı geliştiriciler, yazılımlarının nasıl kullanılabileceğiyle ilgili katı kısıtlamalar getirmek isteyebilir. Fakat, bazıları, yazılımlarının çok az kısıtlamayla veya hiç kısıtlama olmadan kullanılmasını tercih ederek buna göre bir lisans türü seçebilir. Bu isteğin nedeni, yazılımlarının geniş bir kitle tarafından kullanılmasını istemeleri olabileceği gibi kısıtlayıcı yazılım lisanslarına felsefi gerekçelerle karşı çıkmaları olabilir.

Elbette, geliştiricilerin belirlediği lisans türlerinin içeriklerini bilerek, biz yazılım kullanıcılarının da hareket etmesi son derece önemli olacaktır.

Sonuç olarak, nedenleri ne olursa olsun, geliştiriciler geliştirdikleri yazılımlar için açık kaynaklı bir yazılım lisansı türü seçerek lisanslama sürecini başlatabilirler. Genel olarak diyebiliriz ki, açık kaynaklı yazılım lisansları, üzerinde anlaşılan hüküm ve koşullara dayalı olarak kaynak kodu, kullanıma, değiştirmeye ve dağıtmaya hazır hale getirmektedir. Pek çok farklı açık kaynak yazılım lisansı vardır ve bu farklı lisanslar, geliştiricinin, kullanıcıların gelecekte uymasını isteyebileceği kısıtlamalara göre değişiklikler göstermektedir.

Proje için uzun vadeli planlama söz konusu olduğunda, hangi lisans türünün projenin ihtiyaçlarına en uygun olduğuna dair bilinçli bir karar verilebilmesi için mevcut açık kaynaklı yazılım lisans türlerini anlamak önemlidir.

Öncelikle, tescilli yazılım neydi, bu konudan başlayalım. Tescilli yazılım dediğimiz zaman, ne şekilde kullanılabileceğini, değiştirilebileceğini veya paylaşılabileceğinin kısıtlayan bir lisans türünden bahsediyoruz. Örneğin bir video oyunu satın aldığımızı düşünelim. Birileriyle paylaşmak veya kar amacıyla satmak için bu oyunun kopyasını oluşturamayız. Veya, oyunun oynayabileceğiniz platformdan farklı bir platformda çalışabilmesi için, kod üzerinde de değişiklik yapmanıza da büyük olasılıkla izin verilmemiş olabilir.

Yazılım kullanıcıları, genellikle bir son kullanıcı lisans sözleşmesi (EULA: End-User License Agreement) ile belirli kısıtlamalara tabi tutulur. Daha önce bir yazılım satın aldıysanız, o yazılımın size ait olduğunu varsaymış olabilirsiniz. Ancak, tescilli yazılım satın aldıysanız, muhtemelen yazılımın sahibi olmadığınızı belirten bir EULA ile birlikte bu yazılımı almışsınızdır. Yani bu şu demek, sadece o yazılımı kullanmanıza izin veren bir yazılım lisansının sahipsiniz. EULA’lar aynı zamanda lisansın kendisini nasıl kullanabileceğinizi de tanımlayabilir ve genellikle sizin yazılımı, yazılım sahibinin (yazılımın geliştiricisi veya yayıncısı) izni olmadan başkalarıyla paylaşmanızı da sınırlar.

En basit açıklama ile  “Açık Kaynak Lisans”ını, yazılımın ve kaynak kodunun, planın veya tasarımın tanımlanmış şartlar ve koşullar altında kullanılmasına, değiştirilmesine veya paylaşılmasına izin veren bir lisans türü olarak ifade edebiliriz. Açık Kaynakolması, yazılımın istendiği gibi kullanılabileceği, kopyalanabileceği, değiştirilebileceği ve dağıtılabileceği anlamına kesinlikle gelmez. Açık kaynak lisansının türüne bağlı olarak, ihtiyaçlarınızı karşılamak veya sorunları gidermek için kaynak kodunu değiştirmenize izin verilebilir. Tanımlanan lisans, yazılım ve kaynak koduyla ilgili sahip olduğunuz özgürlüğü belirlemektedir.

Açık Kaynak Lisansları temel anlamda iki farklı kategoriye ayrılıyor:  “Copyleft” ve “Permissive”.

Okuduğum makalelere göre  mevcutta 200’den fazla açık kaynak lisansı var. Ancak genel olarak hepsi bu iki ana kategoriye giriyor. 2020’de açık kaynaklı yazılımların yaklaşık %76’sı “Permissive” lisansları ve %14’ü “Copyleft” lisansları temel almaktadır. Aşağıda olan grafik, hem “Permissive” hem de “Copyleft” lisanslarının örneklerini göstermektedir.

No alt text provided for this image

“Permissive” lisanslar, kodu/yazılımı minimum kısıtlamalarla kopyalamanıza, değiştirmenize, yeniden birleştirmenize ve yeniden dağıtmanıza olanak tanır. “Permissive” şeklinde lisanslanan yazılımın yeniden dağıtımında genellikle kullanıcıların yalnızca “orijinal telif hakkı bildirimini” ve “lisans metninin bir kopyasını” eklemeleri yeterli olacaktır. En popüler “Permissive” açık kaynak lisansları Apache, MIT, BSD’dir.

“Permissive” lisans türü genellikle, kişilerden, kurumlardan daha fazla katkı almak ve yazılım kullanımını maksimize etmek için tercih ediliyor. Özgür Yazılım Vakfı (Free Software Foundation), 300’den az satır içeren yazılımlar için “Permissive” lisans kullanılmasını öneriyor. “Permissive” lisansa sahip küçük yazılımlar,” Copyleft” lisansına göre daha fazla geliştiriciyi kendisine çekmektedir. Diğer taraftan, şahsen, birisi kar elde etmek istemiyor ama değerli yazılımlar oluşturmak istiyorsa, en iyi seçim “Permissive” lisans kullanmak olacaktır.

“Permissive” lisanslar, yazılım kullanıcılarına kaynak kodunu kullanma, değiştirme ve paylaşma izni verirken, izin verilen şekilde lisanslanan yazılımlardan türetilen yazılımların oluşturucuları, yeniden dağıtım için lisanslama koşullarını da değiştirebilir.

“Copyleft” lisansları da “permissive” lisanslarla aynı izinleri verir ancak aynı zamanda belirli kısıtlamalar, şartlar ve koşullar aracılığıyla yeniden lisanslamaya karşı koruma sağlar. Bu, kullanıcıların, lisansta belirtilen orijinal haklara bağlı kalmasını gerektirir. Ek olarak, tüm çalışmayı bir “copyleft” lisansı altında yayınlamanızı da gerektirir. Başka bir deyişle, bir yazılım kitaplığını bir “copyleft” lisansı (GPL gibi) altında yayınlarsanız ve bir başkası yazılım kitaplığınızı başka bir tescilli kitaplıkla kullanmak isterse, bunu yapmasına izin verilmez. GPL lisansı altında tüm programı oluşturmak için GPL gereklidir.

Elbette İyi ya da kötü lisans olmadığını ve hiçbir lisansın diğerinden daha iyi olmadığını not etmemiz önemlidir. Herkes kendi isteğine uygun bir açık kaynak lisansı oluşturabilir, bu yüzden piyasada bu kadar çok lisans var. Bu, özellikle hukuk konusunda bilgili olmayan bizler için, açık kaynak lisansı seçmeyi karmaşık bir iş haline getirebilir. OSI, kararı daraltmaya ve her şeyi anlamlandırmaya yardımcı olmak için, en sık kullanılan 80’den biraz fazla açık kaynak lisansından oluşan onaylı lisanslar listesi hazırlamış durumdadır.

Şimdi gelin biraz da, en sık kullandığımız açık kaynak yazılımlarını analiz edelim. Öncelikle PostgreSQL’den başlayacağım. PostgreSQL, BSD veya MIT lisanslarına benzer bir liberal açık kaynak lisansı olan PostgreSQL Lisansı altında yayınlanır. Yani “permissive” lisans kategorisinde yer aldığını görüyoruz. Önemli bir konudan daha bahsetmek istiyorum. Malum, bulut üzerinden yönetilen hizmet almak son derece yaygın. Bu bağlamda da özellikle açık kaynak veri tabanlarına olan talep çok fazla. Açık kaynak veri tabanlarının sahip olduğu lisans türü, ilgili veri tabanının DBaaS olarak kullanımını kısıtlayabilir. Bu konuda da dikkatli olmak gerekiyor. Örneğin, PostgreSQL lisansında böyle bir kısıtlama yok ve pek çok bulut sağlayıcısı kendi bulut ortamlarında PostgreSQL DBaaS’i son kullanıcılarına sağlamaktadır.

Gelelim MySQL’e. MySQL’de yine en bilindik açık kaynak lisans türüne sahip, GNU Generic Public License (GPL). Yukardaki tablomuza göre MySQL, “copyleft” lisans kategorisine giriyor.  Aynı şekilde MySQL’de DBaaS olarak sağlanabiliyor.

NoSQL tarafında MongoDB’yi incelersek, SSPL “Server Side Public” lisansa sahip olduğunu görüyoruz. SSPL, Açık Kaynak Girişimi (OSI) ve birden çok büyük Linux satıcısı dahil olmak üzere birden çok tarafça özgür yazılım olarak tanınmamaktadır, çünkü SSPL lisansda belirtilen hükümler belirli kullanım alanlarına karşı ayrımcıdır. Örneğin, MongoDB’yi, bulut ortamınızda DBaaS hizmeti olarak MongoDB’nin SSPL koşulları altında ancak sağlamanız mümkün olabilir. Okuduğum makalelere göre MongoDB’yi SSPL kapsamında hizmet olarak sunan hiçbir şirket mevcut değil.

Cassandra’yı inceleyecek olursak, Cassandra, Apache Lisansı 2.0 altında ücretsiz olarak kullanılabilir. “Permissive” lisans kategorisine giriyor. Cassandra’yı da DBaaS olarak kendi bulut ortamımızda sağlayabiliyoruz.

Couchbase 7 sürümüyle birlikte, Apache 2.0 lisansından, Business Source License version 1.1’ (BSL 1.1)’e geçmiş durumda. Bu lisans, Couchbase gibi yazılım sağlayıcıların, kaynak kodunu topluluğa yayınlamaya devam ederken kaynak kodlarının nasıl ticarileştirileceğini kontrol etmelerine de olanak sağlamaktadır. BSL v.1.1, üretim ortamında olmayacak şekilde, kodu kopyalamaya, değiştirmeye, yeniden dağıtmaya izin vermektedir. Diğer taraftan, BSL lisansı, varsayılan olarak, üretim ortamında kullanılamıyor ama “Additional Use Grant” denilen ek bir izin ile, ek haklar sağlayabiliyor. Kaynak kodundan ticari bir türev eser oluşturulmadığı, ticari bir ürünün içine yerleştirilmediği, ticari bir DBaaS veya SaaS sağlanmadığı sürece üretim ortamında da kullanılabiliyor. Şöyle bir durumda var, bu lisansın BSL 1.1’e dönüştüğü tarihten 4 yıl sonra, lisans Apache 2.0’a dönüşüyor, yani Couchbase 7.0’i Apache 2.0 lisansı altında yine ticari geliştireceğiniz çözümlerin içinde kullanabiliyorsunuz. Uzmanlar, SSPL lisans türüne göre BSL’in daha izin verici olduğuna vurgu yapıyor.

7 sürümüyle birlikte, Couchbase, Couchbase Server, Couchbase Sync Gateway ve Couchbase Lite’ın Community Edition paketlerindeki lisans kısıtlamalarında olan değişim şu şekilde:  bireysel küme boyutlarını beş (5) node ile sınırlar ve veri merkezleri arası çoğaltmayı (XDCR) Enterprise Edition’ın yalnızca ticari bir özelliği olarak sunar. Bu kurallar,  Couchbase Server Community Edition sürüm 7.0 ve üzeri ile Couchbase Sync Gateway ve Couchbase Lite sürüm 3.0 ve üzeri için geçerlidir.

Özetlemek gerekirse, kullanacağımız açık kaynak yazılımlarla hangi lisans altında hangi koşullarla neleri yapıp yapamayacağımızı anlamak ve uzun vadeli projelerimizi bu kurallara göre kurgulamak önemli olacaktır. Kaynakça bölümünde bu yazıyı yazarken danıştığım pek çok faydalı linki bulabilirsiniz. Daha detaylı bilgiler için bu kaynakları da detaylı inceleyebilirsiniz.

Sarav Asiye Yiğit – 27 Kasım 2022 Pazar

Kaynakça:

 Open Source Licenses Explained | Mend

Licenses & Standards | Open Source Initiative

Open Source Licenses: Types and Comparison | Snyk

Five types of software licenses you need to understand | Synopsys

Comparison of free and open-source software licenses – Wikipedia

Different Types of Open Source Licenses | by Danusha Navod | Enlear Academy

Understanding Open-Source Software Licenses | DigitalOcean

5 common open source software licenses you need to know (techtarget.com)

Licenses & Standards | Open Source Initiative

PostgreSQL: License

Why open source databases have achieved dominance • The Register

MySQL Support and Licensing – MySQL Reference Manual [Book] (oreilly.com)

MySQL :: Commercial License for OEMs, ISVs and VARs

Server Side Public License – Wikipedia

Couchbase Modifies License of Free Community Edition Package

Couchbase Adopts BSL License – The Couchbase Blog

Business Source License 1.1 | Software Package Data Exchange (SPDX)

Champion of Freya by Stjepan Sejic (alphacoders.com) (Makale Başlık Görseli)