License Classifier

ASLA ve OSLC sanırım artık güncellenmiyor. Şimdilerde lisansları saptamak için ne kullanılıyor diye araştırdığımda Go ile geliştirilen License Classifier ile karşılaştım.

License Classifier, içerdiği lisans türünü belirlemek için metinleri analiz edebilen bir kütüphane ve araç kümesi. Bir dosyadaki lisans metinlerini arıyor ve bunları bilinen lisansların bir arşiviyle karşılaştırıyor. Üzerinde çalışılabilecek dosyalar, içinde tek veya birden çok lisans bulunan LICENSE, COPYING gibi dosyalar olabileceği gibi açıklama satırlarında lisans bilgileri olan kaynak kodu dosyaları da olabilir.

Her sonuçla birlikte lisans eşleştirmesinin ne kadar doğru olduğunu gösteren bir güven seviyesi de veriliyor. 1.0 güven düzeyi tam eşleşmeyi belirtirken, 0.0 güven düzeyi araştırılan metnin herhangi bir lisansla eşleşmediğini gösteriyor.

Yeni Lisanslar Ekleme

Projenin kullandığı veritabanına yeni bir lisans eklemek basit. Projenin licenses dizini altında bir metin dosyası oluşturulur. Dosya adı lisansın adı veya kısaltması olmalıdır. Lisans bir Açık Kaynak lisansıysa, SPDX License List'te belirtilen uygun tanımlayıcı kullanılmalıdır.

Eklenecek lisans metni, lisansın kaynak kodları içine eklenen sürümüyse dosya ismine ".header" soneki de eklenir. Daha çok bilgi için licenses/README.md dosyasına bakılabilir.

Son olarak da lisans adı license_type.go içindeki listeye eklenir.

Araçlar

License Classifier, kullanımı kolay iki araçla birlikte gelmekte. Bir dosyadaki lisansları saptamak için identify_license kullanılabilir:

$ go run ./tools/identify_license/identify_license.go LICENSE 
2020/06/05 00:21:37 Classifying license(s): LICENSE
2020/06/05 00:21:37 Finished Classifying License "LICENSE": 57.111456ms
LICENSE: Apache-2.0 (confidence: 1, offset: 0, extent: 8866)

license_serializer aracıyla da licences.db arşivi yeniden oluşturulabilir:

$ license_serializer -output licenseclassifier/licenses

Bu arşiv dosyası, bilinmeyen metinlerle daha hızlı karşılaştırmalar yapabilmek için önceden işlenmiş lisans metinlerini içeriyor.

Sonuç

Yıllar önce çok sık paket yaptığım dönemlerde yazılımların lisanslarını hızlıca saptamak benim için epey önemliydi.

Şimdi de KDE'nin dosya yöneticisi Dolphin'e lisans dosyalarının üzerine gelindiğinde hangi lisans olduğunu gösteren, hangi hakların sağlandığını özetleyen bir araç ipucusu özelliği eklenebilir mi diye merak ederken konuyla ilgili bilgilerimi tazelemiş ve yeni bir araçtan haberdar olmuş oldum. Belki sizin de işinize yarar bu araç?

Yorumlar

Bu blogdaki popüler yayınlar

Mızıka Tabları Nasıl Okunur

Muhtar Kellesi

conio.h