Uygulamada, GPL ve BSD lisanslı kodu birleştirirken dosyaları nasıl yönetirsiniz?


10

GPL (LGPL değil) lisanslı bir kütüphane ve 3 yanlı BSD lisanslı bir kütüphane kullanan kod yazıyorum . GPL lisanslı kitaplığa bağlandığım için kodumun da GPL olması gerekiyor. Uygulamada, BSD kütüphanesinden orijinal LICENSE.txt ile nasıl başa çıkmalıyım?

(A) Bir projeyi ana kaynak kodunun GPL lisanslı olması ve ardından bazı alt dizinlerin BSD lisanslı olması için dağıtabilir miyim?

(B) Sadece kütüphanelere bağlanmakla kalmayıp, BSD ve GPL kodunu daha kapsamlı bir şekilde kullanmak ve birleştirmek isteseydim, o zaman LICENSE.txt ile ne yapmalıyım?

3 maddeli BSD metni şunu söyler: "Kaynak kodun yeniden dağıtımları yukarıdaki telif hakkı bildirimini, bu koşullar listesini ve aşağıdaki sorumluluk reddini korumalıdır." görünüşe göre bir yerlerde telif hakkı bildirimini ve bu koşullar listesini saklamalıyım. Ama sonra GPL lisansı txt dosyasını bir yere koymam gerekecek.

Ayrıca, görünüşe göre, aşağıdaki koşulların yerine getirilmesi şartıyla, "değişiklikle veya değiştirmeden kaynak ve ikili biçimlerde yeniden dağıtım ve kullanıma izin verilmez: BSD lisans metninin bir kısmı, bana yalnızca diğer parçaları saklayın.

Peki, uygulamada GPL lisans metnini ve BSD lisansının ve sakladığım telif haklarının parçalarını nasıl ve hangi metin dosyalarında düzenlemeliyim?

DÜZENLEME: B durumunda, 3-maddeli BSD lisansı (tek yönlü) GPL ile uyumlu olduğu için, 3-maddeli BSD lisanslı kodu alıp izin verilen GPL altında yeniden dağıtacağım . Ben sadece pratikte lisans metinleri ve metin dosyaları ile nasıl başa çıkılacağını soruyorum.


Bu kötü bir fikir. Basit bir web araması size nedenini gösterecektir. Ancak tüm ürün GPL olur. Daha önce bununla ilgili sorunlar vardı.
Andrew T Finnell

2
@Andrew Finnell: Neden kötü bir fikir? Bir bileşen olduğu için tüm ürün GPL'dir, ancak bunun nesi yanlış? BSD lisanslı kütüphane hala BSD lisanslıdır. İnsanlar, daha kısıtlayıcı lisanslar kullanmak isteyen kişiler tarafından işlerinin kullanılabilir olmasını istemedikçe BSD lisanslarını kullanmazlar.
David Thornley

Yanıtlar:


1

Basitlik için, her şeyi GPL altında bırakmak muhtemelen en iyisidir. 3-maddeli BSD lisansının herhangi bir kopyası kalmamıştır, bu nedenle bildirimini koruduğunuz sürece yeniden markalama haklarınız dahilindedir.

İki tür dosya ile karşılaşacaksınız:

  • Başlangıçta BSD dosyaları: her iki başlığa sahip olması gerekir, sipariş bilgim için önemli değil, sadece oradalar
  • Dosyalarınız ve başlangıçta GPL dosyalarınız: GPL üstbilgisine sahip olmanız gerekir

Ve elbette herhangi bir ikili sürüm için, kaynağa bir bağlantı ve her iki üstbilgiyi de başka bir biçimde eklemeniz gerekir. Standart GPL'yi, ardından "Bu programın bazı bölümleri başlangıçta aşağıdaki lisans altında yayınlandı" ya da bunun gibi bir şey öneriyorum, eğer aradığınızda bunun vahşi doğada olduğuna dair örnekler bulabilirsiniz.

Avukat olmadığımı veya açık kaynak lisanslama veya genel olarak lisanslama konusunda uzman olmadığımı unutmayın. Basitçe, verilen lisanslama hakkındaki yorumumun nasıl görüneceğini aktarıyorum.


1

Tamam, GPLv3'ün 7. bölümünü okumak , "Programın yalnızca bir kısmı için geçerli olan" [1] ek izinlere izin verir [1]. Yani BSD lisansı altında bazı dosyaları veya dizinleri saklamak iyi görünüyor, çünkü BSD lisansının "ne istersen yap" bir "ek izin" olduğunu tahmin ediyorum.

Ayrıca, bölüm 7 "bu Lisansın şartlarını şartlarla tamamlamaya" izin verir: (6 puan izin verilen tür şartlar listesi aşağıdadır) ve BSD lisansının 3 maddesinin (+ feragatname) tümü kapsanır, bu durumda BSD ve GPL kodunu tek bir dosyada karıştırmak, belki de sadece bir yere bir ADDITIONAL_TERMS.txt koymak zorundayım, BSD lisansından 3 cümle + feragatname içeren.

(Daha kesin olmak gerekirse, BSD lisansı hakkında her zaman konuştuğumda, sorumu bağladığım 3 maddelik AKA "Yeni BSD Lisansı" AKA "Modifiye BSD Lisansı" anlamına geldim.)

[1] Programı alan bir kişi, yeniden dağıtırsa ek izinleri kaldırmasına izin verileceği sürece. Ve BSD lisansı buna izin verir.


-1

Bu, lisans koşullarının çoklu yorumlarına göre mümkün değildir.

gnu.org sürüm 2 için diyor :

Çünkü GPL'de olmayan özel bir gereksinim getiriyor; yani, programın reklamları için gereklilik. GPL şunları ifade eder:

Alıcıların burada verilen hakları kullanmasına başka bir kısıtlama getiremezsiniz.

Reklam cümlesi, böyle bir kısıtlama getirdiği için GPL ile uyumsuzdur.

Gözden geçirilmiş BSD lisansı, sorunu ortadan kaldıran reklam maddesine sahip değildir.

ve GPL v3 için :

Orijinal BSD lisansı neden GPL ile uyumlu değil? (#OrigBSD)

Çünkü GPL'de olmayan özel bir gereksinim getiriyor; yani, programın reklamları için gereklilik. GPLv2, Bölüm 6'da belirtilmektedir:

Alıcıların burada verilen hakları kullanmasına başka bir kısıtlama getiremezsiniz.

GPLv3 bölüm 10'da benzer bir şey söylüyor. Reklam maddesi böylesine ek bir kısıtlama getiriyor ve bu nedenle GPL ile uyumsuz.

Gözden geçirilmiş BSD lisansı, sorunu ortadan kaldıran reklam maddesine sahip değildir.

Diğer avukatlar / hakimler elbette farklı görüşlere sahip olabilir.


1
4-maddeli BSD lisansından bahsetmediğinizden emin misiniz? "Önceden yazılı izin alınmadan bu yazılımdan türetilen ürünleri onaylamak veya tanıtmak için <organizasyon> adı veya katkıda bulunanların adları kullanılamaz." hiçbir şekilde şekil veya biçimdeki reklamları ifade etmez ve aslında kaynak kodun telif hakkıyla değil, kuruluşun ticari markasıyla ilgilidir.
Guvante

1
Aslında! Farklı revizyonlar hakkında (tekrar) kafam karıştı!
johannes
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.