Serpil Saldık
Proje Yöneticisi

Redis Kritik Lisans Güncellemesi: Etkisi Nedir?

Redis Kritik Lisans Güncellemesi: Etkisi Nedir?

İçindekiler

  1. Giriş
  2. Lisans Türleri
  3. Redis Lisans Değişikliği
  4. Sonuç
  5. Kaynakça

1. Giriş

Redis, 2024 yılında yaptığı son güncelleme ile lisanslama politikasını değiştirdi. Bu değişikliğe göre versiyon 7.4’ten itibaren Redis RSALv2 ve SSPLv1 lisansları kapsamındadır. Peki bu değişiklik ne anlama geliyor? Halihazırda altyapısında Redis kullanan uygulamalar bu lisans değişikliğinden etkilenecek mi? Blog yazımızın amacı bu gibi sorulara çeşitli kaynaklardan derlediğimiz bilgiler ile cevap vermektir.

Gelin Redis’e de konu olan farklı lisans türlerini ve ne manaya geldiklerini kısaca inceleyelim. Son olarak Redis’in lisanslamada yaptığı son değişikliği ve sonuçlarını birlikte değerlendirelim.

2. Lisans Türleri

Yazılım lisansı, bir yazılımın hangi koşullarda kullanılabileceğini, kopyalanabileceğini, dağıtılabileceğini ve üzerinde değişiklik yapılabileceğini belirleyen yasal bir belgedir. Bu lisanslar, yazılımın telif hakkına sahip kişi veya kuruluşun haklarını korurken, kullanıcıya yazılımı nasıl ve ne şekilde kullanabileceği konusunda kısıtlamalar ya da izinler sunar. Örneğin, bazı lisanslar yazılımın ücretsiz kullanımına izin verirken, bazıları ticari kullanım için ücret talep edebilir veya kaynak kodu değiştirme yetkisini sınırlayabilir.

Bu bölümde GPL, AGPL, BSD, RSALv2 ve SSPLv1 lisanslarını inceleyerek farkları neler kısaca değinelim. Lisanslar genel olarak anlatılarak farklı varyasyonlardaki ayrıntılara konunun özüne odaklanmak için değinilmemiştir.

GPL (General Public License / Genel Kamu Lisansı)

GPL, yazılım özgürlüğü ilkelerini vurgular, bilgi paylaşımını ve iş birliğini teşvik eder. GPL ile lisanslanmış bir yazılımın değiştirilmiş sürümlerinin de GPL kapsamında lisanslanmasını gerektiren bir copyleft lisanstır.

Copyleft, kullanıcıların yazılımı özgürce kullanmasına, değiştirmesine ve dağıtmasına olanak tanıyan bir tür açık kaynaklı yazılım lisansıdır. Copyleft lisansının temel amacı, yazılımın sonraki kullanıcılar için ücretsiz ve açık kalmasını sağlamaktır.

GPL’in dikkat edilmesi gereken ana şartlarını listeleyecek olursak:

  • GPL, yazılımın kopyalarını herhangi bir kısıtlama olmaksızın başkalarına dağıtma özgürlüğü verir. Buna hem ticari hem de ticari olmayan dağıtımlar dahildir.

  • Yazılımın kaynak kodu, yazılıma erişen herkesin kullanımına sunulmalıdır.

  • Kullanıcılar yazılımı değiştirebilir ve ona dayalı türev çalışmalar oluşturabilir ancak bu değişikliklerin de GPL lisansı ile dağıtılması gerekir.

  • Lisansın verdiği özgürlükler, yazılımın sonraki tüm sürümlerinde veya dağıtımlarında korunur.

  • Yazılımın alıcılarına yönelik herhangi bir ek kısıtlama yapılması yasaktır. Yazılımın belirli çalışma alanları, gruplar veya kullanıcı türleri tarafından kullanımına dair bir kısıtlama yapılamaz.

  • GPL, GNU LGPL (Lesser General Public License / Kısıtlı Genel Kamu Lisansı) gibi diğer özgür yazılım lisanslarıyla uyumludur. Bu, geliştiricilerin GPL lisanslı kodu diğer uyumlu lisanslar kapsamındaki kodla birleştirmesine olanak tanır.

  • GPL bir telif hakkı lisansıdır ve herhangi bir garanti veya sorumluluk koruması sağlamaz. GPL lisanslı yazılımın kullanıcıları, bununla ilişkili tüm riskleri üstlenirler.

Ek olarak, yazılımınızda bir GPL bileşeni kullanıyorsanız, yazılımınızın tamamı ‘GPL’ye dayalı bir çalışma’ olarak kabul edilir ve kullanımının ve dağıtımının yukarıdaki koşullara uygun olmasının sağlanması gerekmektedir.

AGPL (Affero General Public License / Affero Genel Kamu Lisansı)

AGPL, yazılımın internet veya ağ üzerinden kullanıldığı durumlarda bile, değiştirilmiş haliyle kullanan kişilerin kaynak kodunu paylaşmasını zorunlu tutan bir açık kaynak lisansıdır. Bu sayede, uzaktan erişilen bir yazılımın da herkes tarafından incelenip geliştirilmesine olanak tanır.

AGPL ile GPL arasındaki temel fark, telif hakkı hükümlerinin kapsamıdır. GPL, GPL lisanslı yazılıma yönelik tüm türev çalışmaların veya değişikliklerin de GPL kapsamında lisanslanmasını gerektirir. Bu, projenizde GPL lisanslı kod kullanıyorsanız projenizin tamamını GPL kapsamında da lisanslamanız gerektiği anlamına gelir.

AGPL lisanslı yazılım kullanıyorsanız ve üzerinde değişiklik yaparsanız ve ardından bu değiştirilmiş sürümü bir ağ üzerinden (örneğin bir web uygulaması olarak) sunarsanız, bu değişikliklerin kaynak kodunu kullanıcılara vermenizi zorunlu kılarak daha da ileri gider.

Özetle:

  • GPL: Copyleft, yazılım paketleri olarak dağıtılan türev çalışmalar için geçerlidir (masaüstü uygulamalar vs.).

  • AGPL: Copyleft ayrıca yazılımı kullanan ağ tabanlı hizmetler için de geçerlidir.

AGPL, çevrim içi hizmet olarak sunulan yazılımın açık kaynak olarak kalmasını sağlamayı amaçlarken GPL, geleneksel paketlenmiş biçimde yazılım dağıtımına odaklanır. AGPL, ağ bağlantılı uygulamalar için daha güçlü copyleft koruması sağlar.

BSD (Berkeley Software Distribution / Berkeley Yazılım Dağıtımı) Lisansı

BSD ana açık kaynaklı lisans türlerinden biri olarak değerlendirilir ve incelediğimiz diğer lisansların aksine BSD lisansı oldukça hoşgörülüdür. Başlangıçta BSD işletim sistemi tarafından kullanılmıştır. Daha hoşgörülü yapısından dolayı birçok yazılımın lisanslanmasında kullanılmaktadır.

BSD ile lisanslanan bir yazılımın üzerinde yapılan yeni türevleri açık kaynak kodlu olmak zorunda değildir ve ticari amaçla kullanılabilir. Yeni türevleri herhangi bir kısıtlama olmaksızın satılabilir veya özel ürünlere dahil edilebilir.

BSD lisansı karmaşık metin ve şartlar içermediği için herkesin minimum yasal sorunla ticarileştirme seçeneğini elinde tutmasına olanak tanır ve uzun süreli araştırma projeleri için iyi bir seçimdir. Araştırma sonuçlarını nihai olarak ekonomiye mümkün olan en yaygın şekilde aktarmayı amaçlayan uzun vadeli kamu projeleri için tercih edilebilir.

BSD lisanslı herhangi bir kodu kopyalamayı, değiştirmeyi veya dağıtmayı planlıyorsanız yeni oluşan türeve aşağıdakileri eklemelisiniz:

  • Lisansın tam metni,

  • Orijinal telif hakkı bildirimi.

BSD lisansı önemli copyleft lisanslarıyla uyumludur.

RSALv2 (Redis Source Available License / Redis Kaynak Kullanılabilir Lisansı)

RSALv2, yazılımın ticarileştirilemeyeceği veya yönetilen bir hizmet olarak başkalarına sağlanamayacağı gibi büyük bir sınırlamayla kullanıcıların ‘yazılımı kullanmasına, kopyalamasına, dağıtmasına, kullanıma sunmasına ve türev çalışmalarını hazırlamasına’ olanak tanır.

Yazılımdaki lisans, telif hakkı veya diğer bildirimler değiştirilemez, kaldıramaz veya gizlenemez. Lisans sahibinin tescil ettiği ticari markalarının her türlü kullanımı yürürlükteki yasalara tabidir.

RSALv2’nin hangi kullanımlara izin verdiğini daha iyi anlayabilmek için örnekle açıklayacak olursak:

  • Arka uçta Redis Stack tarafından desteklenen bir SaaS uygulaması geliştiriyorsanız:
    • RSALv2 buna izin vermektedir.
  • Geliştiricilerin Redis Stack örneklerini dağıtmasına olanak tanıyan bir DBaaS geliştiriyorsanız:
    • RSALv2 bunu yasaklamaktadır.

SSPLv1 (Server Side Public License / Sunucu Tarafı Kamu Lisansı)

SSPLv1, NoSQL veri tabanı yönetim sistemi olarak bilinen MongoDB tarafından oluşturulan kaynakta kullanılabilir bir lisanstır. Ücretsiz ve sınırsız kullanıma, değiştirmeye ve yeniden dağıtıma izin verir ve kendi koşulları sağlandığında lisanslanan yazılımı bir hizmet olarak sunmaya izin verir.

GPLv3’ü baz alır ve copyleft lisansı olarak kabul edilir.

SSPLv1 lisanslı bir yazılımın bir hizmet olarak sunulacak sürümlerinde veya dağıtımlarında aşağıdaki koşullar sağlanmalıdır:

  • Sonraki sürümlerin ve dağıtımların da SSPL kapsamında lisanslanması gerekir ve bu lisansın açık bir şekilde duyurulması gerekir.

  • Tamamıyla açık kaynak olmalıdır.

Önemli Not: Bir lisansı kullanmaya karar verdiğinizde hangi varyasyonu kullanacağınıza varyasyonlar arasındaki farkları inceleyip karar vermeniz gerekir. Varyasyonlar arasında ciddi farklılıklar olabilir.

3. Redis Lisans Değişikliği

Redis’in kaynak kodu bu değişiklikten önce BSD 3 maddeli lisans kapsamındaydı. Bu lisans, geliştiricilerin herhangi bir ücret ödemeden kodu ticari olarak kullanmalarına olanak tanımaktaydı. Redis, Versiyon 7.4’ten itibaren RSALv2 ve SSPL olmak üzere yoluna çift lisanslı olarak devam etmektedir. Kullanıcılara bu iki lisanstan birini seçme özgürlüğü sunmaktadır. Redis şartlarını ilk kez yeniden yazmıyor. 2018 yılında bazı modüllerindeki lisansta pek çok açık kaynak kullanıcılarını düşündürecek şekilde ayarlamalar yapmıştı.

Redis yöneticileri bu değişikliği Redis hizmetlerini kullanan bulut hizmet sağlayıcılarının Redis’i ücretsiz bir şekilde kullanarak ticari çıkar elde etmelerini engellemek için yaptıklarını ifade etmektedir.

Redis kendi sitesinde sık sorulan sorulara verdiği cevapta eğer Redis şirket içi veya bağlı kurumlarda bir hizmet olarak kullanılıyorsa bu kullanımın üçüncü tarafların kullanımına sunma olarak değerlendirilmediğini ve yeni lisanslamayı ihlal etmediğini belirtmiştir.

4. Sonuç

Sonuç olarak bu lisans değişikliği kaynaklarda farklı şekillerde yorumlanmıştır. Bazı kullanıcılar, bu durumun yalnızca bulut hizmet sağlayıcılarının Redis hizmetlerini kullanarak ticari kâr elde etmelerini engellemek için yapıldığını ve bireysel kullanıcıları ticari kâr elde etseler bile etkilemeyeceğini düşünürken bazı kullanıcılar ise yeni lisansların şartlarından dolayı herkesi kapsadığını ve ilgili şartların yerine getirilmesi gerektiğini ifade etmektedir.

Her ne kadar farklı görüşler olsa da, Redis’in geçmişte de yaptığı lisans değişiklikleri göz önünde bulundurulduğunda gittikçe kısıtlamalı lisans yönetimine evrildiği için gelecekte atacağı adımlar daha da kısıtlayıcı olabilir.

Bu tür değişiklikler açık kaynak geliştiricilerinin Redis community’ye destek olmak noktasında temkinli davranmasına yol açmaktadır. Redis’e destek veren birçok açık kaynak geliştiricisi de lisans değişikliğinden önceki sürümlerden yeni türevler oluşturarak bu hizmetin açık kaynak olarak devam etmesi için yeni oluşturulan türevlere destek vermektedirler.

Tüm bunlar göz önünde bulundurulduğunda Redis’e alternatif olabilecek diğer seçeneklerin de incelenmesi faydalı olabilir. Bu konuyla alakalı sonraki yazımızda bu alternatiflerden biri olan Valkey’i inceleyeceğiz.

5. Kaynakça

  1. FOSSA https://fossa.com/blog/open-source-software-licenses-101-bsd-3-clause-license/
  2. FOSSWire https://fosswire.com/post/2007/04/the-differences-between-the-gpl-lgpl-and-the-bsd/
  3. GNU https://www.gnu.org/licenses/gpl-faq.tr.html#AGPLProxy
  4. InfoWorld https://www.infoworld.com/article/2336574/redis-moves-to-source-available-licenses.html
  5. Mend https://www.mend.io/blog/top-10-gpl-license-questions-answered/
  6. Medium https://medium.com/@t.machala/redis-isnt-free-anymore-1c5aa6c81107
  7. Quora https://www.quora.com/What-is-the-difference-between-GPL-and-AGPL-license
  8. Redis Blog https://redis.io/blog/redis-adopts-dual-source-available-licensing/
  9. Redis Blog https://redis.io/blog/rsalv2-sspl-announcement/
  10. Redis https://redis.io/legal/licenses/
  11. Redis https://redis.io/legal/rsalv2-agreement/
  12. TelDat https://www.teldat.com/blog/open-source-software-licenses-coyleft-gpl-bsd/
  13. The Register https://www.theregister.com/2024/03/22/redis_changes_license/
  14. TIM Review https://timreview.ca/article/67#:~:text=Lawyers%20working%20with%20the%20GPL,guarantee%20for%20intellectual%20property%20lawyers”.&text=The%20BSD%20license%20is%20intended,without%20restriction%20on%20future%20behavior

Yazımızın teknik gözden geçirmesi için Özay Duman’a, editör desteği için ise Beyza Şenel ile Kübra Ertürk’e teşekkür ederiz.