GPL bir türev çalışmaya ima edilebilir mi?


13

Üç yazılım projesi vardır: A, B ve C.

A herkese yayınlanır ve GPL lisansı altındadır.

B, A'yı genişletir, yayınlanır, ancak lisans bilgisi yoktur veya yanlışlıkla LGPL kapsamında lisanslanmıştır. Temel olarak A lisansını GPL olmadan ihlal eder. B'nin kaynak kodu hala kullanılabilir.

C, B'yi uzatır. C, GPL altında yayınlanabilir mi? Motivasyon "A GPL, herhangi bir türev de GPL olmalı, bu yüzden B GPL ve C GPL olabilir" olacaktır.


5
B'nin hangi kısmı C uzanıyor? Eğer hepsi zaten A'da ise sorun görmüyorum. C, B'nin A'da olmayan kısımlarını genişletirse , işler ilginçleşir.

A, B, C projelerini adlandırır ve B'nin yazarlarıyla iletişime
geçerdim

1
Ayrıca, GPL LGPL uyumlu olduğu için en azından C'yi GPL altında yayınlayabileceğinize inanıyorum. Ama IANAL
Basile Starynkevitch,

2
@Tichodroma, C, B'nin bölümlerini genişletir, ancak A olmadan var olamaz :)
Andrej

C'nin yazarı da (parçası) A mı yazdı? Değilse, A yazarlarının B'ye hangi lisansı verdiğine dair hiçbir fikrimiz yok, bu yüzden üzerine inşa edip edemeyeceğimiz hakkında hiçbir fikrimiz yok mu?
dcorking

Yanıtlar:


23

Öncelikle, B, A üzerindeki GPL'yi ihlal ediyor. Ama bu tam olarak endişe duymuyorsunuz ve buradaki soru ile ilgisiz (kim bilir, belki B, A kodundan LGPL lisansı altında yayınlanabilmesi için bir LGPL lisansı aldı mı? ).

Soru "LGPL koduna dayalı bir GPL yazılımı oluşturabilir misiniz?" Bunun cevabı basitçe "evet" tir.

LGPL, GPL'den daha az kısıtlayıcıdır (bu nedenle B, diğer hükümler yapılmadıkça A'nın lisansını neden ihlal eder), aynı zamanda bir GPL projesine oldukça kolay bir şekilde geri getirilmesine izin verir.

LGPL lisansından:

  1. Kütüphane Başlık Dosyalarından Malzeme İçeren Nesne Kodu. Bir Uygulamanın nesne kodu formu, Kitaplığın bir parçası olan bir başlık dosyasından malzeme içerebilir. Bu nesne kodunu, dahil edilen malzeme sayısal parametreler, veri yapısı düzenleri ve erişimcileri veya küçük makrolar, satır içi işlevler ve şablonlarla (on veya daha az satır uzunluğunda) sınırlı değilse, seçtiğiniz şartlar altında aktarabilirsiniz. aşağıdakilerin ikisini de yapın:

    a) Nesne kodunun Kütüphane'de kullanıldığı ve Kütüphane ile kullanımının bu Lisans kapsamında olduğu her kopyasında önemli bir uyarı verin.
    b) Nesne koduna GNU GPL ve bu lisans belgesinin bir kopyası ile eşlik edin.

Lisansın bir parçası. LGPL koduna göre kolayca bir GPL yazılımı oluşturabilirsiniz.

Kodun GPL'nin doğru sürümü altında doğru şekilde lisanslandığından emin olmak için dikkat etmeniz gereken bazı sürüm farklılıkları vardır.


Sunulan lisans bilgilerinin olmaması durumunda, bu bilgileri genişletme hakkınız yoktur . B dağıtıldı olmamalı, ama onun katkıları vardır değil bir açık kaynak lisansı altında lisanslı. Bu, yayınlanan bir başka proje veya başka bir etkinlik olabilir.

GPL ile genişletme ile uyumlu bir lisans altında sunulmaz. Bir şirketin, GPL yazılımını dahili olarak (kabul edilebilir - bir ihlal değil) kullanarak, yanlış bir şekilde repolarını halka açtığı durumunu düşünün.

Bu durumda, C projesinin telif hakkı ihlallerini ihlal etmesi oldukça mümkündür (B'nin GPL kapsamında lisanslanmamış, ilk etapta dağıtılmamış olması gereken materyal).

Bir olamaz başkasının kaynağına bir lisans zorlar. Ya lisans ile uyumludur ya da onu ihlal etmektedir. İhlali ise, lisansta belirtildiği gibi:

İşbu Lisans kapsamında açıkça belirtilmedikçe, kapsam dahilindeki bir işi çoğaltamaz veya değiştiremezsiniz. Aksi takdirde yayma veya değiştirme girişimleri geçersizdir ve bu Lisans kapsamındaki haklarınızı otomatik olarak sona erdirir (bölüm 11'in üçüncü paragrafında verilen patent lisansları dahil).

GPL'nin ihlali, malzemenin GPL altında olduğu anlamına gelmez, aksine dağıtılamaz.



5
@Andrej B'nin nasıl lisanslanacağını belirleme hakkına sahip olan tek kişi, B yazan kişilerdir. A, GPL 'ise, "dağıtma" veya "GPL olarak lisanslama" seçeneğine sahiptir. Yanlış bir şekilde dağıtıldığı, GPL olarak lisanslandığı anlamına gelmez.

6
Ayrıca, "B'nin A'nın yazarlarından farklı bir lisans alıp almadığını bilmiyorsunuz;" B'nin A'nın telif hakkını ihlal etmemesi mümkündür, çünkü B'nin GPL altında A kullandığını bilmiyorsunuz (A yazarları istedikleri kadar çok sayıda lisans verebilir ve örneğin GPL altında sunabilirler) ve onun için tescilli kodda kullanmanıza izin veren bir lisans satabilirsiniz).
cpast

1
B'nin yazarının GPL lisansı altında A alması durumunda, dağıtım gerçeği GPL'yi B'ye zorlamaz. Ama bunu yapacak herhangi bir lisans var mı? Yani bir kişi yazılımını yayınlayabilir ve gelecekte yayınlanacak tüm türevlere erişebileceğinden emin olabilir mi? Ve herkesin türevler üzerinde lisans zorlamasına izin verin. (Bunun için yeni bir soru başlatabilirim :))
Andrej

2
Dördüncüsü, bir EULA, GPL'den çok, çok, çok daha yasal olarak sorgulanabilir. GPL herhangi bir kısıtlama getirmez; herhangi bir kısıtlama aslında yasal telif hakkı yasasından kaynaklanmaktadır (GPL'nin yaptığı bazı durumlarda bu kısıtlamalardan feragat etmektir). Bu yüzden GPL çok iyi çalışıyor - "GPL ihlali" diye bir şey yok, sadece telif hakkı ihlalleri var. Bir EULA ile, insanların kendilerini kısıtlamayı kabul etmelerini sağlamanız gerekir; Bu, birisinin kabul etmediği (telif hakkını kabul etmeniz gerekmez) gibi çok karanlık ve olası savunmalarla dolu sözleşme hukuku alanında olduğunuz anlamına gelir.
cpast

4

Telif hakkı sahipleri vardır: A tarafından oluşturulan eserlerde telif hakkı vardır, B tarafından yapılan eklemelerde telif hakkı vardır ve C tarafından yapılan değişikliklerde telif hakkı vardır. C, A ve B'nin telif haklarına sahip olduğu yazılımı kullanma iznine sahip olup olmadığını kontrol etmelidir.

A, GPL kapsamında lisanslanmıştır. Onları yanlış lisanslayan B'den almış olsanız bile, GPL'nin A'nın çalışmasını GPL şartları altında kullanma izni verdiğinden eminim. Pratik sorunlar olabilir: Örneğin, kaynak kodunu verebilmeniz gerekir. Yazılımı kaynak kodu olmadan aldıysanız, GPL şartları altında yayınlamanız mümkün değildir.

B, başka bir lisans altında lisanslanmıştır. B'nin GPL lisansı almış olması gerekirdi, ancak lisanslanmamıştı. B'nin lisansı size GPL'den daha fazla hak verirse, aslında A'nın kodu için bu haklardan hiçbirine sahip değilsiniz - B size A'nın kodu için ek haklar veremez. A kodunu GPL terimleri altında kullanabilirsiniz, çünkü A izin verdi, B'nin B kodu da ek kodudur.

B, kodlarını GPL'den daha katı bir lisans altında yayınladıysa, B büyük olasılıkla telif hakkı ihlali yapıyor. G kodunu GPL lisansı altında kullanamazsınız. Bu genellikle karışıktır: GPL B'yi hiçbir şey yapmaya zorlayamaz . Sadece B'ye seçenek sunar: Bu şekilde yayınlayın ve yasal olarak iyidir veya başka bir şekilde yayınlayın ve yasadışıdır. B, yasadışı bir şey yapma ve sonuçlarına (telif hakkı ihlali nedeniyle dava açma) maruz kalma hakkına sahiptir. B'nin B'nin size vermediği koduna ilişkin herhangi bir hakkınız yok.


3

Teknik olarak, bir GPL kütüphanesini kendisi GPL lisansı kapsamında olmayan bir kodla genişletmek mümkündür. Buradaki engel, yarattığınız türetilmiş çalışmayı dağıtırken, GPL'nin size koyduğu tüm gereklilikleri yerine getirmeniz gerektiğidir.

Durumunuzda bu, GPL altında A kütüphanesi ve LGPL altında B kütüphanesinde yeni kodun bulunabileceği anlamına gelir . Birleşik çalışma (kütüphane B) GPL lisansı altında etkin bir şekilde dağıtılır ve LGPL lisansı GPL lisansı ile uyumlu olduğu için dağıtılabilir (bir GPL lisanslı projede LGPL lisans kodunu kullanabilirsiniz).
Bu durumda, yeni kodu GPL altında C kütüphanesinde bulundurmak ve sonuçta GPL altında çalışmak da gayet iyi.


Bu sadece işe yarar çünkü B'nin LGPLed parçaları GPL altındaki GPLed A ile kullanılabilir. Yeni kod, GPL ile çakışan bir lisans kapsamındaysa (örneğin, tüm hakları saklıdır), B'nin bir bütün olarak GPL altında etkili bir şekilde dağıtıldığını varsayamazsınız.
cpast

1
@cpast: Haklısın, LGPL'nin GPL ile uyumlu olduğunu belirtmeyi unuttum. Lisanslar uyumsuz olsaydı, sonucu dağıtmanıza izin verilmezdi.
Bart van Ingen Schenau
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.