Yazılım Lisansı
- İngilizcesi
- Software License
- Okunuşu
- softver laysıns
Kısaca
Yazılım lisansı, yazılımın kullanımını, değiştirilmesini ve dağıtımını düzenleyen yasal izindir; açık kaynak lisansları izin verici ya da copyleft olabilir.
Yazılım lisansı (software license) nedir?
Kod otomatik olarak telif hakkıyla korunur; bu yüzden lisans olmadan, GitHub'da herkese açık olsa bile, başka kimse onu yasal olarak yeniden kullanamaz. Lisans izinler verir ve koşullar koyar. Ticari yazılımlar için tipik olan kapalı (proprietary) lisanslar genellikle kullanıma izin verir, ama kopyalamayı, değiştirmeyi ya da yeniden dağıtmayı yasaklar. Açık kaynak lisansları ise farklı koşullar ekleyerek bu özgürlükleri tanır.
MIT, BSD ve Apache 2.0 gibi izin verici (permissive) lisanslar, telif hakkı ve lisans bildirimlerini koruduğunuz sürece kodu kapalı kaynaklı ürünlerde kullanmak dahil neredeyse her şeyi yapmanıza izin verir; Apache 2.0 ayrıca açık bir patent izni de içerir. GPL gibi copyleft lisanslar ise koddan üretilmiş bir yazılımı dağıtırsanız onun kaynağını aynı lisansla paylaşmanızı gerektirir. AGPL bunu ağ üzerinden sunulan yazılımlara genişletir; LGPL ve MPL ise dosya ya da kütüphane düzeyinde daha zayıf bir copyleft uygular.
Ekipler lisansları izler, çünkü bağımlılıkları kendi yükümlülüklerini beraberinde getirir. Araçlar bağımlılıkları tarar ve uyumsuz lisansları işaretler; paket meta verisindeki MIT ya da Apache-2.0 gibi SPDX tanımlayıcıları da bunu otomatik hâle getirir. Bazı şirketler AGPL kodundan tamamen kaçınır; Business Source License gibi kaynağı görülebilir (source-available) lisanslar da kod herkese açık olsa bile ticari kullanımı kısıtlar.
Sık yapılan bir yanlış, lisanssız kodun serbestçe kullanılabileceğini düşünmektir. Tam tersi doğrudur: lisans yoksa bütün haklar saklıdır. Bir başka yanlış da izin verici lisansların hiç koşulu olmadığıdır; gerekli bildirimleri çıkarmak bir lisans ihlalidir. Yükümlülükler konusunda, özellikle ürünler için, şüphe varsa hukuki görüş almaya değer.
Önemli noktalar
- Lisans, yazılımın nasıl kullanılabileceğini, değiştirilebileceğini ve dağıtılabileceğini belirtir.
- Lisans olmadan kod varsayılan olarak bütün hakları saklıdır.
- İzin verici lisanslar (MIT, BSD, Apache 2.0) bildirimlerin korunmasını ister.
- Copyleft lisanslar (GPL, AGPL) kaynağın aynı koşullarla paylaşılmasını ister.
- Bağımlılık lisansları yükümlülük getirir; SPDX kimlikleri onları izlemeye yardım eder.
Sık sorulan sorular
MIT ile GPL arasındaki fark nedir?
MIT izin vericidir: bildirimini korursanız kodu kapalı kaynaklı ürünler dahil her yerde kullanabilirsiniz. GPL ise copyleft'tir: GPL kodu içeren bir yazılımı dağıtırsanız o yazılımın kaynağını da GPL ile yayımlamanız gerekir.
Bir GitHub projesinin lisansı yoksa ne olur?
Varsayılan olarak telif hakkı yasası geçerlidir; bu yüzden onu görebilseniz bile kopyalama, değiştirme ya da dağıtma izniniz yoktur. Yazarından izin istemeniz gerekir.
Projem için hangi lisansı seçmeliyim?
Az koşulla en geniş benimsenmeyi istiyorsanız MIT ya da Apache 2.0'ı, iyileştirmelerin açık kaynak kalmasını istiyorsanız GPL'i, bunun ağ servisi olarak sunulan yazılımlar için de geçerli olmasını istiyorsanız AGPL'i seçin.
İlgili sayfalar
- Açık KaynakEkipler ve Süreç, s. 2Açık kaynak yazılım, kaynak kodu herkesin kullanmasına, incelemesine, değiştirmesine ve paylaşmasına izin veren bir lisansla yayımlanan yazılımdır.
- GitHubSürüm Kontrolü, s. 25GitHub, Git depolarını barındırıp birlikte kod yazmaya yarayan; pull request, kod incelemesi, issue ve en büyük açık kaynak topluluğunu sunan platformdur.
- Tedarik Zinciri SaldırısıGüvenlik, s. 43Tedarik zinciri saldırısı, uygulamanın kendisini değil, açık kaynak paketi, derleme aracı veya güncelleme sunucusu gibi dayandığı bir bileşeni ele geçirir.
- Paket YöneticisiProgramlamanın Temelleri, s. 43Paket yöneticisi, yazılım paketlerini ve onların bağımlılıklarını kuran, güncelleyen ve kaldıran, sürümleri otomatik olarak çözen bir araçtır.
- RepositorySürüm Kontrolü, s. 34Repository, bir projenin tüm dosyalarını ve sürüm kontrol sisteminin kaydettiği her değişikliğin eksiksiz geçmişini barındıran depolama alanıdır.
- KütüphaneProgramlamanın Temelleri, s. 35Kütüphane, bir programın sık yapılan işleri o kodu kendisi yazmadan yapmak için çağırdığı, fonksiyon ve sınıf gibi hazır kodlardan oluşan bir koleksiyondur.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin