Mozilla Kamu Lisansı (MPL 2.0) vs Küçük GNU Genel Kamu Lisansı (LGPL 3.0)


24

Projenin çatallarının ana projeye dahil edilmesine olanak tanıyan, web tabanlı bir kaynak kod barındırma hizmetinde sınıf tabanlı, nesne yönelimli bir programlama dilinde (Java) yazılmış bir yazılım kütüphanesi yayınlamak istiyorum (GitHub ile çekerek istekleri). Web’de araştırma yaptım ve yazılımın nasıl lisanslanacağına dair çok düşündüm. Aşağıdaki varsayımlarda doğru muyum ( IANAL perspektifinden)?

  • Hem LGPL hem de MPL , diğer yazılım projelerinde kullanılan LGPL / MPL lisanslı yazılımda değişikliklerin paylaşımını teşvik eder. Değiştirilmiş kitaplık kullanıcılarının, kitaplığın ayrı bir çatalını barındırmasını istemek yerine , orijinal kitaplığa katkıda bulunmayı teşvik edebilirim (örneğin, çekme istekleriyle).

  • En büyük fark, MPL / LGPL lisanslı kodunun projeye nasıl bağlanması gerektiğidir. MPL kaynak kodu dosyaları doğrudan (muhtemelen) tescilli bir yazılım projesine ( statik bağlantı ) kopyalanabilir , LGPL lisanslı kodunun dinamik olarak bağlanması gerekir (olası tescilli yazılım projesine gevşek şekilde bağlanır, böylece son kullanıcılar lisanslı yazılımı değiştirebilirler) lisanslı yazılım kütüphanesinin başka bir sürümü için kütüphane).

  • Dinamik bağlantı ve dolayısıyla LGPL , açık kaynaklı yazılım kütüphanesine statik bağlantıya (ve dolayısıyla MPL'ye) göre daha fazla katkı yapmadan, özel yazılım ürününü paketlemek için ekstra engeller koyar . Bir yoktur modifiye LGPL statik bağlantı sağlar.

  • Orada hiçbir diğer ilgili farklılıklar (bir den IANAL perspektifi).

  • Eski lisans sürümleri en yeni olanlar kadar iyi olarak benim ihtiyaçlarına uygun değil.

Gördüğünüz gibi benim ana gereklilik olduğunu modifikasyonlar tescilli üründe yazılım kütüphanesi kullanımıyla ilgili sınırlayıcı bir nitelik taşımayan, genel kamu kalmak açık kaynak için yararlı olabilecek bir yazılım kütüphanesi. Açık kaynak olarak yayınlanacak orijinal eserle ilgili yazılım kütüphanesinin uzantılarını
gerektiren herhangi bir lisans yoktur , çünkü ilgili terimin kapsamı keyfi olarak küçük / büyük olabilir, dolayısıyla GPL olarak sona erebilir tescilli bir üründe kullanılır (kaynağın tamamını serbest bırakmadan).

Değiştirilmiş LPGL'yi kullanmaya başlıyorum , ancak diğer yandan popülerlikten vazgeçtim. Yukarıdaki noktalara dayanarak MPL'yi tercih ederim.
Soru: Yukarıdaki ifadelerim doğru mu? Gereksinimlerime göre hangi lisansı seçmeliyim?


Çözüm: Kabul edilen cevaptaki tartışmaların yardımıyla, popülerlik , bağlantı kurma özgürlüğü ve resmi, değiştirilmemiş bir lisans olduğu için MPL'ye bağlı kalmayı tercih ediyorum .



Yazılım lisanslama için fazladan bir soru-cevap, bence çok faydalı olacaktır. Teşekkürler!
mucaho

1
Orada gerçekten bir soru görmüyorum. Asıl sorunuzun ne olduğunu açıklayabilir misiniz?
Bart van Ingen Schenau,

Yanıtlar:


15

Mozilla Kamu Lisansı ile GNU Daha Az Genel Kamu Lisansı arasındaki farkları doğru bir şekilde belirttiğinize ve her iki ihtiyacınıza da tam olarak uyduğuna inanıyorum , ancak iki lisans arasındaki en önemli farkı atlıyorsunuz:

Kimler yeni sürümler yapabilir?

Hem MPL (bölüm 10) hem de LGPL (bölüm 14), lisanslarına dahil edildiğinde, mevcut sürümü sonraki sürümle değiştirme hakkını verir ve bu lisanslara nelerin girebileceği konusunda gerçek bir sınırlama yoktur. Mozilla Vakfı ya da Özgür Yazılım Vakfı'nın, "bu yazılıma yapılan tüm katkıların bizim mülkümüz haline geldiğini" söyleyen bir cümle kurarak söyleyebileceği kadar çılgınca bir şey yapması pek olası değildir. kuruluşlar, sevmediğiniz yeni bir lisans sürümü yayınlayacak.

Hangi bir "Modifiye LGPL" kullanma konusunda başka bir noktaya getiriyor.


Değiştirilmiş bir lisans aynı lisans değil!

Kendi lisans terimleri belirtmek için oldukça şaşırtıcı bir yeteneği var ve özü söz hakkından içinde olabilir iken "GPL göre bu dağıtabilirsiniz, ancak kredi Adımı koymak gerekir ve bana oluşturmak herhangi gelirin% 1 ödeme" , ne zaman yaparsan yap, başka birinin çalışmasına dayanarak yeni bir lisans yaratıyorsun. Bu, MPL veya LGPL'yi kullanmadığınız, yeni bir "mucaho lisansı" kullandığınız anlamına gelir.

Bunun anlamı, bir mahkeme salonundaki lisans hakkındaki yorumunuzu savunmanız gerekiyorsa, orijinal lisansınızın yazarından herhangi bir yardım alamayacağınızdır ve THEIR sürümünün uygulanması gerektiğini belirtmek için dava açmaları tamamen mümkündür. senin değil.


Tabii ki, ikisi de küçük puanlar. "Lisans popülerliği" bile, kodunuzun doğrudan daha büyük projelere dahil edilmesini beklemiyorsanız önemli değil.

Şahsen, mülkiyete uygunluktan hoşlanıyorsanız veya seçimin asıl MPL ile LGPL'ye göre manuel olarak düzenlemek zorunda olduğunuz farklı bir lisans arasındaysa daha iyi bir seçim olduğunu düşünüyorum. MPL'yi kullanmamak için bir nedeniniz yoksa, herhangi bir yardım almadan sizi mahkemede bırakabilecek bir kurum yerine, vakıf tarafından desteklenen bir şeyle gidin.


Yeni sürümler üretme konusunda, FSF'nin Wikipedia'nın CC-SA olarak içeriği kapsamasına izin verecek bir hüküm yaratması durumu dikkat çekicidir.
Hıristiyan

Teşekkürler! Sadece açıklama için: @DougM, "Hem MPL (bölüm 10) hem de LGPL (bölüm 14) lisanslarına dahil edilmiş, mevcut sürümün sonraki sürümle değiştirilmesine izin vermektedir" dedi . Yazılımımın eski sürüm altında lisanslı kalmasını veya daha yeni lisans sürümüne geçmek istiyorsam yine de seçim yapabilir miyim (bkz. MPL2.0 bölüm 10.2)? Öyleyse, yeni sürümlerle ilgili noktayı doğru yorumluyorsam, yalnızca LPGL / MPL kitaplığımın kullanıcıları, daha yeni bir sürüme geçmeyi seçersem ve bu yeni sürüme uymuyorsa dezavantajdalar mı?
mucaho,

2
Ne LGPL ne de MPL, bir lisans hibesini iptal etmek için bir mekanizmaya sahip değildir. Birisi bir kez kodu aldığında, sonsuza dek bu lisansın koşulları altındadır . Ve o zamanki lisansı mı yoksa herhangi bir halefi lisansı mı takip edeceğini seçerler. (Yeni dağıtımları yeni bir sürüme geçirebilirsiniz, ancak bunu yapmak isteyenler de bunu yapabilir. "Çatalları" programınızın başka bir bölümünü değiştirmese bile.)
DougM

Ah, açıkladığın için teşekkürler! "Geçerli sürümü ikinci sürümle değiştirme hakkına sahip olduklarını" açıklamaya çalışır mısınız? Bu, (muhtemel olmayan bir durumda) FSF'nin , önceden var olan LGPLv3.0'a geriye dönük olarak “bu yazılıma yapılan tüm katkıların bizim mülkiyetimiz olduğunu” söyleyen bir madde ortaya koyabileceği anlamına mı geliyor ?
mucaho

1
Deneyebilirlerdi , ama bunu yapmak muhtemelen başarılı olamazdı . Bununla birlikte, "LGPL4'e aktardığınız herhangi bir projenin adını çalabilirsiniz" veya başka bir beklenmedik sürüm olabilir. (Muhtemelen bunu yapmayacaklar, ancak mahkemeler böyle bir cümleyi yerine getirmelerine izin vermese de, ikisi de ve Mozilla'yı teknik olarak
COULD'a koyacaklardı

4

DougM ve AER'nin cevabı adil bir noktaya değiniyor. Statik istisna içeren MPLv2 ve LGPLv3, copyleft'i tetikleyecek olaylarla aynıdır. Ancak, LGPL ve MPL arasında çok önemli bir fark eksik olduğunu düşünüyorum. Copyleft tetiklendiğinde, copyleft şunlara uygulanır:

  • MPL için: orijinal kütüphanenizin tam olarak aynı dosyalarına
  • LGPL için: “Kütüphaneyi kullanan esere” karşı “kütüphaneye dayalı esere”. Böylece LGPL, copyleft'i yeni dosyalara genişletebilir.

Son durum: MPL kullanmak, kullanıcıların geliştirmelerini paylaşmamalarını sağlar

MPL, dosya düzeyinde bir copyleft lisansıdır. Biri daha büyük bir projeye (statik veya dinamik olarak) katıştırırsa ve dosyanızda değişiklik yaparsa, yalnızca bu dosyaya yapılan değişikliği serbest bırakması gerektiği anlamına gelir.

Kod tabanınızın bütünlüğünü açık tutma konusunda endişeleriniz varsa, MPL'nin bu copyleft etkisinin yeterli olmayabileceği bazı durumlar vardır.

Örneğin, birisi projenizin ana dosyasından birini alabilir, "import my_private_new_file" ekleyebilir ve örneğin "my_private_new_file.newAwesomeFeature.run ()" ekleyerek ana yönteminizi değiştirebilir .

Bu şekilde projenize yeni özellikler ekleyerek yalnızca değiştirilen ana dosyayı serbest bırakıp yeni özellik kapalı kaynağının gerçek mantığını "my_private_new_file" de tutabilir .

Ana dosyanın topluluğa geri dönmesi size sadece "yeni bir özellik eklediniz" bilgisini verir, ancak bu yeni özelliği açıklığa dahil etmenize izin vermez ... Yeni özelliğin yakın olması sıkıcı olabilir Kütüphanenizin çözmeye çalıştığı sorunla ilgili.

Açıkçası, bu son bir durum ve birinin bunu yapmak istemesi pek mümkün değil, ancak MPLv2'yi kullanırken dikkat etmeniz gereken bir risk.

LGPL, bu tür davranışları yasaklamak için yazılmıştır. Görmek:

Orijinal LGPL lisansını alıntı yapıyorum:

Bir "kütüphaneye dayalı çalışma" ile "kütüphaneyi kullanan çalışma" arasındaki farka dikkat edin. Birincisi kütüphaneden türetilmiş kodu içerir, oysa ikincisi çalıştırılmak için kütüphaneyle birleştirilmelidir.

Copyleft sadece “kütüphaneye dayalı iş” için geçerlidir. Şimdi pratikte "kütüphaneye dayalı çalışma" nedir? Yorumlamaya yer bırakıyor. Bu, yalnızca hoş bir şey değildir, çünkü lisansınıza uymak daha karmaşık ve dolayısıyla korkutucu hale gelir. Bazı insanların kütüphanenizi kullanmamasına yol açabilir.

Bu anlamda, LGPL, MPL'den daha kısıtlayıcı olmakla birlikte, projenin bütünlüğünden daha fazla koruyucudur.

MPL, özel dünyadaki kullanıcıların kütüphanenizi düzeltmesini ve kullanmasını kolaylaştırırken, yine de düzeltmeyi paylaşmak zorunda kalıyor

MPL'nin bir avantajı, bir kullanıcı kitaplığınızda bir hata bulduğunda, tüm kodunu vermek zorunda kalmadan, yalnızca düzeltmeyi sağlamak zorunda kalmadan dosyayı doğrudan düzeltebilir. Pratik olarak, çalışmalarını bir müşteriye dağıttığında, düzeltmeyi içeren projenizin bir çatalına bir bağlantı sağlayabilir ve iyi.

LGPL kullanarak, işler daha karmaşık. Birisi projenizi onaylarsa, bir hatayı düzeltir ve onu kendi özel yazılımına statik olarak yerleştirirse, kullanıcılarına LGPL'nin altındaki "kütüphaneye dayalı eseri" dağıtması gerekir. Özellikle kütüphane statik olarak gömülü olduğunda, oldukça karanlık bir kavramdır ... Bu bağlamda, orijinal LGPL'de "statik" bir istisna olarak böyle bir şeyin olmamasının asıl nedeni olduğunu düşünüyorum. "Kütüphaneye dayalı eserler" in tanımlanmasını önemsiz kılar: Özel yazılımınızda çağırdığınız dinamik kütüphanedir.

Sonuç olarak, MPL, tescilli satıcıların kullanımı ve Kütüphane'nize düzeltme göndermeyi LGPL'den ilginç bir şekilde kolaylaştırır.

Aynı zamanda, çoğu zaman tescilli satıcıların kaynakları veya kütüphanenizin içine dalmak için zamanları yoktur ve büyük olasılıkla kendi başlarına çözemezler. GitHub deponuzda bir sorun açmayı tercih ederler ya da posta listesine bir e-posta göndererek düzeltmenizi beklerler.

Bu bağlamda, LGPL bu tür davranışları daha da zorlar. Ancak yaptırım gerçekten gerekli mi?

Sonuç

LGPL ve MPL arasında seçim yapmak zor bir soru ve her zamanki gibi yazılım lisansıyla amacınıza bağlı. Her iki lisans da çok benzer ancak aynı zamanda son derece farklı. Çok farklı amaçlar ve felsefe için tasarlandılar.

LGPL, Özgür Yazılım kütüphanelerinin mülk dünyadaki yaygın şekilde kullanılmasını sağlamak için Özgür Yazılım Vakfı tarafından yapılmıştır, ancak Özgür Yazılım'ı teşvik etme ve mülk yazılımlara karşı mücadele etme fikri her zaman akılda tutulmuştur. Hepsi kendi ideolojilerine yönelik bir stratejinin parçası. Bakınız: https://www.gnu.org/licenses/why-not-lgpl.html

MPL, Mozilla tarafından orijinal kütüphaneye benzer bir çeşit paylaşım sağlamak için tasarlanmış pratik bir lisansken, FSF tarafından yetkilendirilmiş bir uygulamadır. LGPL ancak yine de zararlı olarak değerlendiriliyor.

Temel olarak, MPLv2 birçok kişi tarafından izin verilen bir lisans olarak kabul edilirken, statik istisna dahil olmak üzere LGPLv3'e nadiren bu yol denir.

DÜZENLE

Önemli bir şeyden bahsetmeyi unuttum. LGPLv3 (statik istisna olmadan veya istisnasız) geçişi yasaklar . Bunun bir "ayrıntı" olduğunu düşünebilirsiniz, ancak amacınıza bağlı olarak aslında değildir. Kullanıcıların özgürlüğü ile ilgileniyor musunuz? O zaman bir detay değil. Kütüphanenizin Apple'ın cihazında kullanılmasına önem veriyor musunuz? VLC, kullanılmaya daha fazla önem veriyor , bu nedenle böyle bir kısıtlama içermeyen LGPLv2'yi kullanmaya karar verdiler . Benzer şekilde, Linux'un GPLv2'yi kullanmaya devam etmesinin nedenlerinden biri de budur . MPLv2, FSF ideolojisi değil, akılda daha "pratik" Açık Kaynak felsefesiyle oluşturulan bir lisans olduğundan, herhangi bir tiviozation kısıtlaması yoktur.

Özlediğim başka "küçük" şeyler de olabilir.

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.