Ana içeriğe atla

Açık Kaynak Lisans Uyumluluğu: Yazılım Şirketleri İçin Pratik Bir Kılavuz

Ticari yazılımlar için lisans kategorizasyonu, SBOM oluşturma, copyleft yükümlülükleri ve otomatik uyumluluk taraması ile açık kaynak lisans uyumluluğuna gidin.

E
ECOSIRE Research and Development Team
|16 Mart 20267 dk okuma1.4k Kelime|

Ortalama bir ticari uygulama, 500'den fazla bağımlılığa yayılmış %77 oranında açık kaynak kodu içerir. Her bağımlılık, belirli yükümlülüklere sahip kendi lisansını taşır. Bu yükümlülüklerin ihlal edilmesi, şirketinizi davalara, zorunlu kod ifşasına ve itibarınızın zedelenmesine maruz bırakır.

Uyumluluk ve Mevzuat serimizin bir parçası

Tam kılavuzu okuyun

Ortalama bir ticari uygulama, 500'den fazla bağımlılığa yayılmış %77 oranında açık kaynak kodu içerir. Her bağımlılık, belirli yükümlülüklere sahip kendi lisansını taşır. Bu yükümlülüklerin ihlal edilmesi, şirketinizi davalara, zorunlu kod ifşasına ve itibarınızın zedelenmesine maruz bırakır. Ancak çoğu şirketin açık kaynak lisanslarını takip etme veya bunlara uyma süreci yok.

Bu kılavuz, lisans kategorizasyonundan otomatik tarama ve SBOM oluşturmaya kadar açık kaynak lisans uyumluluğu için pratik bir çerçeve sağlar.

Önemli Çıkarımlar

  • Tüm açık kaynak lisansları aynı değildir: izin veren lisanslar neredeyse her şeye izin verir, copyleft lisansları ise değişiklikleri paylaşmanızı gerektirir
  • Yazılım Malzeme Listesi (SBOM), devlet alımlarında yasal bir gereklilik haline geliyor (ABD Yönetici Emri 14028)
  • CI/CD'de otomatik lisans taraması, uyumlu olmayan bağımlılıkların kod tabanınıza girmesini önler
  • Copyleft "bulaşma" riski gerçektir: bir GPL bağımlılığı sizi tüm uygulamanızı açık kaynak yapmak zorunda bırakabilir

Lisans Kategorileri

İzin Verilen Lisanslar (Düşük Risk)

LisansYükümlülüklerTicari KullanımDeğişiklikDağıtım
MİTTelif hakkı bildirimi + lisansı dahil edinEvetEvetEvet
BSD 2-MaddeTelif hakkı bildirimi + lisansı dahil edinEvetEvetEvet
BSD 3-MaddeAynı + onay iddiası yokEvetEvetEvet
Apache 2.0Bildirim + lisans + durum değişiklikleri + patent verilmesini dahil etEvetEvetEvet
ISCTelif hakkı bildirimi + lisansı dahil edinEvetEvetEvet

Ticari kullanım için güvenlidir. Lisans metnini ve telif hakkı bildirimini dağıtımınıza ekleyin. Apache 2.0 ayrıca orijinal koddaki herhangi bir değişikliğin dikkate alınmasını gerektirir ve bir patent lisansı içerir.

Zayıf Copyleft (Orta Risk)

LisansYükümlülüklerAnahtar Kısıtlaması
LGPL v2.1/v3LGPL kodundaki değişiklikleri paylaşın; kodunuz dinamik olarak bağlıysa özel olarak kalırStatik bağlantı copyleft'i tetikleyebilir
MPL2.0MPL dosyalarındaki değişiklikleri paylaşın; yeni dosyalar özel olabilirDosya düzeyinde copyleft
EPL2.0Değişiklikleri paylaşın; ikincil lisans seçeneği mevcutModül düzeyinde copyleft

Dikkatli kullanın. LGPL kitaplıklarını statik olarak bağlı değil, paylaşılan (dinamik) kitaplıklar olarak tutun. MPL lisanslı kodu, özel kodunuzdan ayrı dosyalarda saklayın.

Güçlü Copyleft (Yüksek Risk)

LisansYükümlülüklerAnahtar Kısıtlaması
GPL v2Türev çalışmalar GPL lisanslı olmalıdırBağlama türev çalışma yaratır
GPL v3v2 + anti-tivoizasyon + patent bağışı ile aynıDaha geniş copyleft
AGPL v3GPL v3 + ağ kullanımının copyleft'i tetiklemesiyle aynıSunucu tarafı kullanım sayıları
SSPL"Hizmet" yığınının tamamı açık kaynaklı olmalıdırEn geniş copyleft

Ticari yazılımlar için en yüksek risk. Uygulamanızda GPL kodunu kullanmak, uygulamanızın tamamını GPL kapsamında yayınlamanızı gerektirebilir. AGPL, bunu sunucu tarafı yazılımlara kadar genişletir; ikili dosyaları hiçbir zaman dağıtmasanız bile, yazılımı bir web hizmeti olarak sağlamak, copyleft yükümlülüğünü tetikler.


Uyumluluk İş Akışı

Adım 1: Bir SBOM oluşturun

# For Node.js projects (using CycloneDX)
npx @cyclonedx/cyclonedx-npm --output-file sbom.json --spec-version 1.5

# For Python projects
pip install cyclonedx-bom
cyclonedx-py environment --output sbom.json

# For multi-language projects (using Syft)
syft . -o cyclonedx-json > sbom.json

2. Adım: Lisans Uyumluluğunu Tarayın

# Using license-checker for Node.js
npx license-checker --production --json --out licenses.json

# Using scancode-toolkit (comprehensive, all languages)
scancode --license --copyright --output-json scan-results.json .

3. Adım: Sınıflandırın ve Onaylayın

Onaylanmış bir lisans listesi oluşturun:

{
  "approved": [
    "MIT", "BSD-2-Clause", "BSD-3-Clause", "Apache-2.0",
    "ISC", "0BSD", "Unlicense", "CC0-1.0"
  ],
  "conditional": [
    "LGPL-2.1", "LGPL-3.0", "MPL-2.0", "EPL-2.0"
  ],
  "prohibited": [
    "GPL-2.0", "GPL-3.0", "AGPL-3.0", "SSPL-1.0",
    "EUPL-1.2", "OSL-3.0"
  ]
}

Adım 4: CI/CD Entegrasyonu

# .github/workflows/license-check.yml
name: License Compliance
on: [pull_request]

jobs:
  check-licenses:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20

      - run: pnpm install --frozen-lockfile

      - name: Check licenses
        run: |
          npx license-checker --production --excludePackages "" \
            --failOn "GPL-2.0;GPL-3.0;AGPL-3.0;SSPL-1.0" \
            --summary

SBOM (Yazılım Malzeme Listesi)

SBOM'lar Neden Önemlidir

  • ABD Yönetici Emri 14028, ABD hükümetine satılan yazılımlar için SBOM'ların kullanılmasını gerektirir
  • AB Siber Dayanıklılık Yasası, AB'de satılan yazılımlar için SBOM'ları gerektirecektir
  • Tedarik zinciri güvenliği: SBOM'lar güvenlik açıklarına hızlı yanıt verilmesini sağlar (log4j gerçekleştiğinde etkilenip etkilenmediğinizi bilirsiniz)
  • Müşteri güveni: Kurumsal alıcılar, satın alma sırasında giderek daha fazla SBOM talep ediyor

SBOM Standartları

StandartBiçimBakımı YapanEvlat Edinme
CycloneDXJSON, XMLOWASPBüyüyor (npm için varsayılan)
SPDXJSON, RDF, Etiket DeğeriLinux VakfıKuruldu (ISO/IEC 5962:2021)
SWIDXMLNISTHükümet

Öneri: Çoğu yazılım şirketi için CycloneDX. Daha basittir, daha iyi takım desteğine sahiptir ve endüstrinin varsayılanı haline gelmektedir.


Ortak Uyumluluk Senaryoları

Senaryo 1: Node.js Web Uygulaması

Tipik bir node_modules dizini 500-2.000 paket içerir. Büyük çoğunluk MIT veya ISC lisanslarını kullanıyor. Yaygın sorunlar:

  • GPL kullanan geçişli bağımlılıklar (bunları doğrudan eklemediniz)
  • Manuel inceleme gerektiren UNKNOWN lisans alanları
  • Tek bir pakette birden fazla lisans (ör. "MIT OR Apache-2.0")

Eylem: npx license-checker --production haftalık olarak çalıştırın. İzin verilmeyen lisansları araştırın. GPL bağımlılıklarını izin veren alternatiflerle değiştirin.

Senaryo 2: Odoo Modülü Geliştirme

Odoo Topluluk Sürümü LGPL v3'tür. Odoo Enterprise tescillidir. Özel modülleriniz:

  • Topluluk modülleri: LGPL v3 veya uyumlu olmalıdır (dağıtılmışsa)
  • Özel dahili modüller: Dağıtılmadığından LGPL geçerli değildir
  • Kurumsal eklentiler: Odoo Enterprise lisanslama şartlarına uygun olmalıdır

Senaryo 3: AGPL Bağımlılıklarıyla SaaS

SaaS uygulamanız AGPL lisanslı kod kullanıyorsa (örneğin, SSPL'ye geçmeden önce MongoDB), aşağıdakilerden birini yapmanız gerekir:

  1. Uygulama kaynak kodunuzun tamamını AGPL kapsamında yayınlayın
  2. AGPL bağımlılığını kaldırın ve bir alternatif kullanın
  3. AGPL projesinden ticari bir lisans alın (varsa)

AGPL kodunun sunucu tarafında kullanımı, ikili dosyaları hiçbir zaman "dağıtmasanız" bile copyleft yükümlülüğünü tetikler.


Sıkça Sorulan Sorular

API'mizde GPL kitaplığı kullanmak bizi API'mizi açık kaynak yapmaya zorluyor mu?

Bu onu nasıl kullandığınıza bağlıdır. GPL kitaplığı uygulamanıza (statik veya dinamik olarak) bağlıysa, FSF'nin görüşü, uygulamanızın "türetilmiş bir çalışma" olduğu ve GPL kapsamında lisanslanması gerektiği yönündedir. GPL yazılımıyla bir ağ API'si (örneğin, GPL lisanslı bir veritabanı sunucusu kullanarak) aracılığıyla iletişim kurarsanız, bu genellikle türev bir çalışma olarak kabul edilmez. Özel durumunuz için bir avukata danışın.

Bir bağımlılık lisansını değiştirirse ne olur?

Gelecekteki lisans değişikliklerine değil, kodu aldığınız lisansa tabi olursunuz. Ancak yeni bir lisansla yeni bir sürüme güncelleme yaparsanız yeni lisans o sürüm için geçerli olur. Bu nedenle sürüm sabitlemeli SBOM'lar önemlidir; tam olarak hangi sürümü (ve lisansı) kullandığınızı belgelerler.

"BİLİNMEYEN" lisanslarla bağımlılıkları nasıl ele alırız?

LİSANS dosyası için paketin deposunu kontrol edin. Herhangi bir lisans belirtilmemişse, kod teknik olarak tam telif hakkı koruması altındadır; onu kullanma, değiştirme veya dağıtma hakkınız yoktur. Lisansı bulun (standart dışı bir konumda olabilir), yazardan bir lisans eklemesini isteyin veya bağımlılığı açıkça lisanslanan bir alternatifle değiştirin.

MIT lisanslı paketler için ilişkilendirme yapmamız gerekiyor mu?

Evet. MIT ve çoğu izin veren lisans, yazılımı dağıtırken telif hakkı bildirimini ve lisans metnini eklemenizi gerektirir. Web uygulamaları için bu genellikle bir ÜÇÜNCÜ TARAF BİLDİRİMLERİ dosyasının veya tüm açık kaynak bileşenlerin ve bunların lisanslarının listelendiği bir sayfanın dahil edilmesi anlamına gelir.


Bir Uyumluluk Programı Oluşturmak

Üç Aylık Uyumluluk İncelemesi

  1. Tüm projeler için SBOM'u yeniden oluşturun
  2. Son incelemeden bu yana yeni bağımlılıkları tarayın eklendi
  3. Güncellenen paketlerdeki lisans değişikliklerini kontrol edin
  4. Görünen tüm "BİLİNMEYEN" lisansları inceleyin
  5. Yeni lisanslarla karşılaşılırsa onaylı lisans listesini güncelleyin
  6. Denetim takibi için SBOM anlık görüntülerini arşivleyin

Uyumluluk Rolleri

RolSorumluluk
Mühendislik lideriHalkla İlişkiler'deki bağımlılık eklemelerini gözden geçirin
Yasal/uyumlulukOnaylanmış lisans listesini tutar, uç durumları inceler
GüvenlikLisans taramasının yanı sıra savunmasız bağımlılıkları da tarar
Ürün sahibiÜrün için koşullu lisansların kabul edilebilir olup olmadığına karar verir

Hafif bir uyumluluk programı, küçük bir ekip için üç ayda bir 2-4 saat sürer ve ürün lansmanından sonra veya durum tespiti sırasında bir uyumluluk sorununu keşfetmenin çok daha büyük maliyetini önler.


Sırada Ne Var?

Lisans uyumluluğu yazılım yönetiminin bir yönüdür. Kendi kodunuz için bunu IP koruması, satıcı yazılımı için SaaS anlaşmasının temelleri ve güvenlik uyumluluğu için siber güvenlik düzenleme gereklilikleri ile birleştirin.

Açık kaynak uyumluluk denetimi ve SBOM oluşturma hizmetleri için ECOSIRE ile iletişime geçin.


ECOSIRE tarafından yayınlandı - işletmelerin açık kaynağı sorumlu bir şekilde kullanmasına yardımcı oluyor.

E

Yazan

ECOSIRE Team

Teknik Yazarlık

ECOSIRE teknik yazarlık ekibi Odoo ERP, Shopify ile e-ticaret, yapay zekâ ajanları, Power BI ile analitik, GoHighLevel ile otomasyon ve kurumsal yazılımda en iyi uygulamalar hakkında yazar. Rehberlerimiz işletmelerin bilinçli teknoloji kararları vermesine yardımcı olur.

ECOSIRE

ECOSIRE ile İşinizi Büyütün

ERP, e-Ticaret, yapay zeka, analitik ve otomasyon genelinde kurumsal çözümler.

Uyumluluk ve Mevzuat serisinden daha fazlası

E-ticaret için Siber Güvenlik: 2026'da İşletmenizi Koruyun

2026 için eksiksiz e-ticaret siber güvenlik kılavuzu. PCI DSS 4.0, WAF kurulumu, bot koruması, ödeme sahtekarlığını önleme, güvenlik başlıkları ve olaylara müdahale.

Kimya Endüstrisi için ERP: Güvenlik, Uyumluluk ve Toplu İşleme

ERP sistemleri kimya şirketleri için SDS belgelerini, REACH ve GHS uyumluluğunu, toplu işlemeyi, kalite kontrolü, tehlikeli madde sevkıyatını ve formül yönetimini nasıl yönetir?

İthalat/İhracat Ticareti için ERP: Çoklu Para Birimi, Lojistik ve Uyumluluk

ERP sistemleri, ticari şirketler için akreditif mektuplarını, gümrük belgelerini, incoterms'i, çok para birimli P&L'yi, konteyner takibini ve görev hesaplamasını nasıl ele alıyor?

ERP ile Sürdürülebilirlik ve ÇSY Raporlaması: Uyumluluk Kılavuzu 2026

2026'da ESG raporlama uyumluluğunu ERP sistemleriyle yönlendirin. CSRD, GRI, SASB, Kapsam 1/2/3 emisyonlarını, karbon takibini ve Odoo sürdürülebilirliğini kapsar.

Denetim Hazırlığı Kontrol Listesi: Kitaplarınızı Hazırlamak

Mali tabloların hazırlığı, destekleyici belgeler, iç kontrol belgeleri, denetçi PBC listeleri ve ortak denetim bulgularını kapsayan eksiksiz denetim hazırlık kontrol listesi.

E-Ticaret İşletmeleri için Avustralya GST Kılavuzu

ATO kaydını, 75.000 $ eşiğini, düşük değerli ithalatı, BAS ödemesini ve dijital hizmetler için GST'yi kapsayan e-Ticaret işletmeleri için eksiksiz Avustralya GST kılavuzu.