Genel

Açık Kaynak Yazılımlar için Lisans Seçimi

Image
Paylaş

Açık Kaynak Yazılım Lisansları yazı serimizin ilk iki sayısında açık kaynak yazılımlara genel bir bakış sunarak, yaygınlaşması ve yükselişinden bahsetmiştik. 3. sayısı olan bu yazımızda ise, açık kaynak yazılım lisansı seçiminde nelere dikkat edilmesi gerektiği konusunda bilgi sahibi olup, en yaygın kullanılan açık kaynaklı yazılım lisanslarını tanıyacağız.

Açık Kaynak Yazılım Lisansı Nedir?

Yazılım Lisansı, yazılımın kullanım koşullarının belirlenmesi, yazılımın dağıtımı ve üzerinde değişiklik yapılması ile ilgili kuralların belirlenmesi amacıyla düzenlenen, yazılımı kullananlar ve geliştirenler arasındaki yasal hakları belirleyen anlaşma niteliğinde belge olarak tanımlanır.

Yazılım lisansları, farklı özellikler ve kullanım şartlarına göre değişiklik gösterir. Örneğin; ticari yazılımlar, genellikle ücretli lisanslarla sunulur ve kullanıcıya sınırlı haklar tanır. Belirli kullanım süreleri veya kısıtlamalar içerebilir. Açık kaynak yazılımlarında ise lisanslar, yazılımın özgür bir şekilde kullanılmasını, dağıtılmasını ve değiştirilmesini mümkün kılar, ancak yine de belirli kurallar ve şartlar içerir.

Yazılım Lisansı Seçimi Nasıl Yapılır?

Neden Bu Kadar Önemli?

Günümüzde pek çok açık kaynak yazılım lisansı, kendine özgü belirli kurallara sahiptir. Bu kurallar çerçevesinde, yazılım geliştiricileri ve kullanıcılar tarafından yazılımın lisansına uygun davranılması önem taşır. Çünkü; bir yazılım lisansının ihlali, yazılımın kullanımı ve dağıtımına sınırlamalar getirilmesi, hak kayıpları ve cezai yaptırımlar gibi yasal sonuçların yanı sıra, ürüne duyulan güvenin azalması ve topluluk desteğinin kaybedilmesine de yol açabilir.

İhtiyaçlarınızı Belirleyin! Hedeflerinize Uygun Lisansları Seçin!

Bir yazılım lisansı, yazılımın kaynak koduyla başkalarının neler yapabileceğini ve neler yapamayacağını belirler. Açık kaynak projelerinde, bu lisansların getireceği imkânlar ve kısıtlamalar göz önüne alındığında, projenin başlangıcında ihtiyaçların doğru şekilde belirlenip uygun lisansın seçilmesi büyük önem taşır. Lisans seçimi sırasında, yazılımın hangi şartlarla paylaşılacağı, değişiklik ve dağıtımın hangi koşullar altında yapılacağı, gelecekteki kullanım amacının ve alanının belirlenmesi gerekir.

Doğru lisans seçimi, projenin hedeflerine ve dağıtım modeline bağlıdır. Örneğin, projede kapalı kaynak uyumluluğu gerekiyorsa, lisanslama süreçlerinin basit tutulması ve mümkün olan en geniş kullanıcı kitlesine ulaşılması isteniyorsa, MIT lisansı tercih edilebilir. Eğer kullanıcıların kodu ticari projelerde kullanabilmesi ve paylaşabilmesi isteniyorsa, ancak aynı zamanda katkı sağlayanların korunması hedefleniyorsa, Apache 2.0 lisansı uygun olabilir. Açık kaynak kalıcılığı ve aynı lisans altında lisanslama gereksinimi varsa, GPL lisansı seçilebilir.

Bağımlılıklar ve Lisans Uyumluluğu: Dikkat Edilmesi Gerekenler

Bir yazılım geliştirilirken, yazılımın başka yazılımlar veya kütüphanelere olan gereksinimleri de önemli bir etken olarak karşımıza çıkar. Bu gereksinimler, yazılımın bağımlılıklarını içerir ve sahip olduğu lisanslar, yazılımın dağıtımı, ticari kullanımı, patent hakları ve değiştirilmesi gibi kritik konularda etkili olabilir. Bu nedenle, yazılımın işleyişi ve olası lisans ihlalleri durumunda karşılaşılabilecek yasal sonuçlar göz önünde bulundurulmalıdır.

Bağımlılıkların lisanslarıyla, ana yazılımın lisansı arasında çakışmalar ve uyumsuzluklar çıkabilir. Bu da yazılımın dağıtımı veya ticari kullanımı açısından sorunlara yol açabilir. Bu tür uyumsuzlukları önceden tespit etmek ve çözmek, proje için oldukça faydalıdır. Bu noktada yardım alınabilecek platformlar arasında, açık kaynak projelerinin lisans uyumluluğunu takip eden FOSSA ve Mend.io (eski adıyla WhiteSource) gibi araçlar yer alır.

Ayrıca, GitHub ve Open Source Initiative (OSI) gibi güvenilir kaynaklar, lisans seçimi konusunda rehberlik eder. GitHub tarafından oluşturulmuş choosealicense.com sitesi, yazılım lisansları hakkında basit ve anlaşılır bilgiler sunarak, hangi lisansın yazılımınıza uygun olduğu konusunda yardımcı olur. GitHub’ın “Bir Deponun Lisanslanması” başlıklı dokümantasyonu da yazılım projelerine lisans eklerken dikkat edilmesi gereken önemli noktalarla ilgili kapsamlı bilgiler sağlar.

Açık kaynak yazılım projeleri, genellikle bir topluluğun katkılarıyla geliştiği ve büyüdüğü için lisans seçiminde başka bir önemli etkenin de topluluk özellikleri ve beklentileri olduğunu unutmamak gerekir. Projeyi kullanacağı ve katkıda bulunacağı düşünülen topluluğun projeye olan bağlılığını üst seviyede tutarak katkılarını teşvik etmek projenin başarısını da artıracaktır.

Açık Kaynak Lisanslar: Esneklik ve Kısıtlamalar

Açık kaynak lisansları, yazılımların özgürce kullanılmasına, değiştirilmesine ve paylaşılmasına izin veren lisanslardır. Bu lisanslar, Açık Kaynak Girişimi (OSI) tarafından belirlenen Açık Kaynak Tanımı (Open Source Definition – OSD) ile uyumlu olup, yazılım projelerinin açık kaynak olarak dağıtılmasını sağlar.

Açık kaynaklı bir yazılım lisansının uluslararası geçerliliğinin sağlanması için Açık Kaynak Girişimi (OSI) tarafından belirlenen lisans inceleme sürecinden geçerek onaylanması gerekir. OSI Lisans İnceleme Süreci, “Açık Kaynak” olarak etiketlenen lisansların ve yazılımların mevcut topluluk normlarına ve beklentilerine uygun olmasını sağlar. OSI tarafından onaylanan lisansların listesine, organizasyonun web sayfasından ulaşılabilir.

Bazı lisanslar yazılımın kullanımı hakkında fazla kısıtlama getirirken, bazıları çok daha esnek olup, genel olarak “izin verici” (permissive) ve “kısıtlayıcı” (copyleft) olmak üzere iki ana başlıkta incelenir. Yazılımda, özgürlük ve açık kaynaklı olma özelliğini korumak önemliyse; kısıtlayıcı (copyleft), ticarileşme daha baskın bir amaç olarak karşımıza çıkıyorsa ise, izin verici (permissive) bir lisans seçilmesi daha uygun olur. Çünkü, izin verici lisanslar yazılımlarının değiştirilmesi ve ticari kullanımına daha fazla esneklik sağlar ve geniş kullanıcı kitlesine ulaşmak isteyen geliştiriciler genellikle izin verici lisansları tercih eder.

İzin verici lisanslar, türev çalışmaların başka lisanslarla dağıtılmasına izin verir, ancak yine de orijinal lisans metni ve yazarların adlarının belirtilmesi gerekir. Bu tür lisanslara örnek olarak MIT, Apache ve BSD lisansları verilebilir. kısıtlayıcı lisanslar ise, açık kaynak yazılımların özgürce kullanması, değiştirmesi, incelemesi ve paylaşmasını gerektirir. Ancak, bu özgürlüğün devam ettirilmesi amacıyla belirli kısıtlama ve şartlar sunarak bunlara uyulmasını ister. Bununla birlikte, yazılımın değiştirilmesi veya türev çalışmaların yapılması durumunda aynı lisans altında dağıtım yapılmasını gerektirir. GPL ve LGPL lisansları bu türe örnek olarak verilebilir.

 En Popüler Açık Kaynak Yazılım Lisanslarının Kullanım oranları
Şekil.1: En Popüler Açık Kaynak Yazılım Lisanslarının Kullanım oranları

Uygulama güvenliği ve açık kaynak yönetimi alanında çözümler sunan mend.io platformu tarafından 2021 yılında yapılan bir araştırmaya göre, izin verici açık kaynaklı lisansların kullanımı artmaya, GPL lisansları başta olmak üzere kısıtlayıcı lisansların kullanımı ise, azalmaya devam etmektedir. (https://www.mend.io/resources/blog/open-source-licenses-trends-and-predictions/ , teknik belge: Açık Kaynak Lisansları için Eksiksiz Kılavuz 2022.)

Apache 2.0 lisansı ve MIT Lisansının, GPL lisanslarından daha popüler olduğu ve kullanılan en iyi açık kaynak lisanslarının %50’sinden fazlasını oluşturduğu ortaya çıkmıştır.

Mend.io’nun, 2021 yılının verilerine dayalı olarak hazırlanan en popüler açık kaynak lisanslarını gösteren Şekil.1’deki grafiğine göre, Lisans kullanım durumları ve en popülerden en az popülere doğru sıralanışı şöyledir;

  1. Apache 2.0,
  2. MIT Lisansı,
  3. GNU Genel Kamu Lisansları,
  4. BSD lisansları,
  5. GNU Lesser Genel Kamu Lisansı,
  6. Mozilla Kamu Lisansı ve
  7. Diğer lisanslar.
 İlk Üç Sırada Yer alan Lisansların Kullanım Yüzdeleri.

Şekil 2: İlk Üç Sırada Yer alan Lisansların Kullanım Yüzdeleri


Açık kaynak yazılım dünyasında kullanılan en yaygın OSI onaylı açık kaynak lisanslarından GNU Genel Kamu Lisansı (GPL), GNU Kısıtlı Genel Kamu Lisansı (LGPL), Apache 2.0, MIT ve BSD lisanlarını genel özellikleri ile tanıyalım.

1. Genel Kamu Lisansı (GPL)

GPL Logo

1983 yılında Richard Stallman tarafından geliştirilmiş, Özgür Yazılım Vakfı (FSF) tarafından yayınlanmış GNU (GPL), güçlü copyleft özelliğe sahip bir özgür yazılım lisansı olma özelliği ile bilinir. Yazılımı özgürce kullanma, kopyalama, değiştirme ve dağıtmaya imkân verir. Fakat, bağlantılı kütüphaneler ve diğer bileşenler dahil olmak üzere yazılımın herhangi bir parçası GPL’e sahip kod kullanıyorsa, tüm programın GPL altında yayınlanması gerekir. GPL’in en temel kuralı, yazılımın kaynak kodunun açık olarak yazılımla beraber verilmesi zorunluluğudur. Yazılımın tamamen açık kaynak olması ve tüm türev çalışmaların da açık kaynak olarak kalması zorunludur. Lisansta yer verilen detaylar bağlayıcı özelliğe sahip olmakla birlikte, teşvik edicidir ve kullanıcı ile üretici tarafına büyük olanaklar sağlar. Bu sebeple, açık kaynak yazılım projelerinde yaygın olarak kullanılır.

GPL ile lisanslanan yazılımlar ücretsiz olmak zorunda değildir, ticari olarak kullanılabilir fakat özgürlükler kısıtlanamaz. Yazılımda değişiklik yapılması durumunda lisansın sürdürülmesi zorunluluğundan dolayı ticari yazılım projelerinde dikkatli kullanılması gerekir.

2007 yılında, değişen teknoloji ve hukuki şartlar karşısında özgür yazılım hareketinin temel prensiplerini korumak amacıyla, lisansın güncel sürümü olan GPL v3 lisansı yayımlandı. Bu yeni sürümün ortaya çıkmasında etkili nedenlerden birisi, belirli cihazlarda GPL lisanslı yazılımlar kullanmasına rağmen, kullanıcıların bu yazılımları özgürce değiştirmesini engelleyen teknik kısıtlamalar getiren Tivoization sorunuydu. GPL v3 ile hem bu soruna hem de patent tehditleri, yazılımların kullanımını kısıtlayan teknolojiler ve lisans uyum sorunları gibi konulara çözüm getirildi.

2. Kısıtlı Genel Kamu Lisansı (LGPL)

LGPL Logo

Açık kaynak yazılım kütüphaneleri için daha esnek bir yaklaşım sunması sebebiyle özellikle kütüphaneler için yaygın olarak kullanılan zayıf copyleft bir lisanstır. İzin verici ve güçlü copyleft lisanslar arasında köprü gibidir. Her iki lisans türünün de avantajlarından bazılarına sahiptir.

LGPL’de; GPL’den farklı olarak; herhangi bir parçası bu lisans altındaki kodu kullanıyorsa, tüm yazılımın aynı lisans altında yayınlaması zorunluluğu bulunmuyor. Bu durum; LGPL’nin, GPL’e göre daha esnek ve ticari kullanıma daha uygun olmasını sağlıyor. GPL gibi LGPL de ticari olarak satılan yazılımlarda kodun kullanılmasına ilişkin hiçbir koşul koymaz. Ancak, LGPL lisansı altındaki bir yazılım değiştirilip yeniden dağıtılırsa, değişikliklerin yapıldığı bölümlerin kaynak kodlarının kullanıcıya sunulması gerekir.

LGPL kodunun GPL olmayan lisanslar altındaki kodla bağlanmasına izin vermesi açık kaynak yazılım projelerinde esneklik sağlamaktadır. Bu sebeple; GPL altında lisanslı olmayan açık kaynak kütüphanelerinin kullanımına izin verip diğer copyleft kısıtlamalarının korunması istenildiğinde LGPL tercih edilebilir. Lisansın açık kaynak yazılım alanında güvenilen GNU Projesi tarafından desteklenmesi de önemli bir tercih sebebi. Ayrıca, LGPL v3 sürümü açık bir patent hakkı verilmesini içeriyor. Bu özellik, LGPL altında yayınlanan yazılıma katkıda bulunan geliştiricilerin, yazılımın daha sonraki kullanımlarına yönelik olarak sahip olabilecekleri patent haklarından feragat ettiği anlamına geliyor. Böylece, kullanıcılar herhangi bir patent hakkı talebiyle karşılaşmadan LGPL lisanslı yazılımları güvenle kullanabilirken, geliştiriciler ise lisans ihlallerinden kaynaklanabilecek olası yasal sorunlardan korunmuş olur. Bu yönüyle, LGPL v3 hem teknik hem de hukuki açıdan yazılımın sürdürülebilirliğine ve yaygın kullanımına önemli bir katkı sunuyor.

3. Apache 2.0 Lisansı

Apache Logo

Apache Yazılım Vakfı (ASF) tarafından yayınlanan ve yaygın kullanılan izin verici bir lisanstır. Lisansın kapsamı geniş, açık ve net olduğu için, yazılım geliştiriciler ve şirketler arasında güven verici bir seçenek olarak tercih edilir. Apache 2.0’ın 2004 yılında yayımlanan son sürümü, patent ihlali konusunda güvence sağlamak, lisans uyumluluğunu artırmak ve açık kaynak yazılımlarının daha esnek ve ticari kullanıma uygun hale gelmesini sağlamak amacıyla geliştirilmiştir.

Apache Lisansı, yazılımın ticari olarak kullanılmasına ve dağıtılmasına büyük esneklik tanır. Kullanıcılar, yazılımlarında değişiklik yapabilir ve türev çalışmalar oluşturabilir; ayrıca bu değişiklikleri başka lisanslar altında yayımlayabilirler. Ancak, yazılımın değiştirilmemiş kısımlarında Apache Lisansını korunmalı ve değiştirilmiş sürümde, nihai ürünün ASF tarafından onaylandığını veya oluşturulduğunu ima edecek şekilde adlandırmalar kullanmamalıdırlar. Ayrıca, yazılım dağıtımı yapılırken lisansın bir kopyası, telif hakkı bilgisi ve atıflar eklenmeli, tüm değişiklikler bildirilmelidir.

Apache 2.0 lisansını diğer açık kaynaklı yazılım lisanslardan ayıran en önemli özellik, yazılımların patent haklarından kaynaklanacak sorunları önlemek amacı ile patent haklarına ilişkin özel hükümler içermesidir. Bu özelliği ile, kullanım veya değiştirmede patent hakkı ihlali riski olmadan yazılımın kullanılması imkanı verir.

Apache 2.0 lisansının popüler hale gelmesinde, patent hakları konusunda verdiği bu güvence ile birlikte Kubernetes gibi önemli projelerde kullanılmış olmasının etkisi büyüktür.

4. MIT Lisansı

MIT logo

Massachusetts Teknoloji Enstitüsü (MIT) tarafından yayınlanan kısa, kolay anlaşılır ve esnek kullanım imkânı sağlayan izin verici bir lisanstır. Kullanıcılar yazılımı hem ticari hem de kişisel amaçlarla kullanabilir, değiştirebilir ve dağıtabilir. Dağıtım ve değişiklik yapma konusunda geniş bir özgürlük sağlarken, orijinal lisans metninin ve telif hakkı bildiriminin korunması gerekir. Değiştirilmiş yazılımın kaynak kodu gizli tutulabilir.

MIT lisansı altında lisanslanan popüler açık kaynaklı projeler arasında Angular.js, Rails ve .NET Core yer alıyor.

5. BSD Lisansı

BSD Logo

BSD lisans grubundaki özgür yazılım lisansları izin verici türdedir. Yazılımın herhangi bir kısıtlama olmaksızın değiştirilmesi, dağıtımı ve kullanımı konusunda oldukça esnektir. Lisans, geniş bir ticari kullanım alanı sağlar. Kaynak kodu, lisansın bir kopyası ve sorumluluk reddi beyanı yazılımın dağıtımına dahil edilmesi gerekir. Bazı BSD lisansları, atıf gereklilikleri veya patent koruma maddeleri gibi ek koşullar da içerir.

BSD lisansı, yazılımın değiştirilmiş sürümlerinde geliştiricilerin veya katkı sağlayanların adlarının reklam amacıyla kullanılması zorunluluğu maddesinin kaldırılması ile güncel halini alarak bu yönüyle ticari kullanıcılar için daha fazla esneklik sağlamıştır. Ancak, yine de yazarların adlarının ve orijinal lisansın belirtilmesi gerekmektedir. BSD Lisansını kullanan bazı popüler projeler arasında FreeBSD, NetBSD, OpenBSD işletim sistemleri ve LLVM derleyici altyapı projesi yer alıyor.

Günümüzde yaygın olarak kullanılan BSD lisansları:

4 Maddeli orijinal BSD Lisansı (4-Clause BSD),

3 Maddeli değiştirilmiş BSD Lisansı (3-Clause BSD)

2 Maddeli Basitleştirilmiş BSD (2-Clause BSD) Lisansı olarak karşımıza çıkıyor.

4-Clause BSD, 4 Maddeli BSD Lisansının içerdiği maddeler:

Telif hakkı bildirimi, ücretsiz kullanım, yeniden dağıtım hakları veren garanti reddi ve “Reklam maddesi” olarak bilinen, yazılımı kullanan ürünlerde orijinal yazılımı geliştirenlerin adlarının kullanılmasını zorunlu tutan maddeyi kapsar. Bu, en tartışmalı ve nadiren tercih edilen maddedir.

3-Clause BSD:

OpenBSD işletim sistemi de dahil olmak üzere pek çok proje tarafından benimsenen BSD lisansıdır. Reklam maddesinin kaldırılması ile birlikte, lisansın en yaygın kullanılan versiyonu haline gelmiş. Ayrıca, 4-Clause BSD lisansından farklı olarak “Onaylanmama” maddesini içeriyor.
Bu madde, yazılımda yapılan değişikliklerin orijinal geliştiriciler tarafından onaylanmasını gerektiriyor.

2-Clause BSD:

3-Clause BSD lisansından Onaylanmama maddesini kaldırarak lisans kurallarını daha da basitleştirir ve geliştiricilerin yazılımı kendi koşulları altında kullanmasını ve dağıtmasını kolaylaştırır.

Bu yazımızda Açık kaynak yazılım dünyasında sıkça kullanılan lisansları ve temel özellikleri bakımından avantaj ve dezavantajlarını ele aldık. Gördüğünüz gibi açık kaynak yazılım dünyasında kullanılan lisansların her biri, kendine özgü nitelikleriyle öne çıkarak, her bir lisansın sağladığı esneklik, kullanım koşulları ve uyumluluk özellikleri ile yazılım geliştiriciler ve kullanıcılar için farklı avantajlar sunuyor.

Siz açık kaynaklı projeniz için hangi lisans modelini tercih edersiniz?

Kaynaklar:

  1. https://www.fsf.org/about/what-is-free-software
  2. https://gonullu.pardus.org.tr/ozgur-yazilim-lisanslari
  3. https://tr.wikipedia.org/wiki/
  4. https://opensource.org/
  5. https://opensource.org/osd
  6. https://choosealicense.com/terms-of-service/
  7. https://fossa.com
  8. www.mend.io/blog/open-source-copyleft-licenses
  9. https://www.mend.io/blog/top-open-source-licenses-explained/
  10. https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository
  11. https://commons.wikimedia.org/wiki/File:Open-source-license-chart.svg
  12. https://opensource.guide/legal/#which-open-source-license-is-appropriate-for-my-project
  13. https://www.gnu.org/licenses/quick-guide-gplv3.html
  14. https://opensource.org/licenses/MIT
  15. https://appmaster.io/tr/glossary/bsd-lisansi
  16. https://en.wikipedia.org/wiki/BSD_licenses
  17. https://www.apache.org/licenses/
  18. https://www.gnu.org/licenses/gpl-3.0.tr.html
  19. https://www.gnu.org/licenses/lgpl-3.0.html

Series Navigation<< Dünyada ve Ülkemizde Açık Kaynak Yazılımların Yükselişi
[wpdiscuz_comments]