MIT - GPL lisansı [kapalı]


122

MIT lisansı GPL uyumludur. GPL lisansı MIT uyumlu mu? Yani MIT lisanslı kodu GPL lisanslı bir ürüne ekleyebilirim, ancak GPL lisanslı kodu MIT lisanslı bir ürüne ekleyebilir miyim?

Bana öyle geliyor ki, MIT lisansı ile GPL arasındaki temel fark, MIT'nin değişikliklere ihtiyaç duymaması, oysa GPL'nin yapmasıdır. Bu doğru mu? GPL, MIT lisansından daha kısıtlayıcı mıdır?


1
en.wikipedia.org/wiki/MIT_License Lisans aynı zamanda GPL uyumludur, yani ...
Michael Petrotta

Yanıtlar:


76

Bana öyle geliyor ki, MIT lisansı ile GPL arasındaki temel fark, MIT'nin değişikliklere ihtiyaç duymaması, oysa GPL'nin yapmasıdır.

Doğru - genel olarak. Sen yok olması size GPL kullanıyorsanız açık kaynak yaptığınız değişiklikleri. Dağıtmadığınız sürece değiştirebilir ve kendi amacınız için kullanabilirsiniz. AMA ... eğer onu dağıtırsanız, GPL kodunu kullanan tüm projeniz de otomatik olarak GPL olur. Bu, açık kaynaklı olması gerektiği anlamına gelir ve alıcı sizinle aynı haklara sahiptir - yani, geri dönüp dağıtabilir, değiştirebilir, satabilir vb. artık tescilli olacaktır - açık kaynak haline gelir.

MIT ile arasındaki fark, MIT lisanslı kodunu kullanan özel mülk kodunuzu gerçekten dağıtsanız bile, kodu açık kaynak yapmak zorunda olmamanızdır. Bunu, kodun şifreli veya ikili olduğu kapalı bir uygulama olarak dağıtabilirsiniz. MIT lisanslı kod dahil olmak üzere, MIT lisans bildirimini taşıdığı sürece şifrelenebilir.

GPL, MIT lisansından daha kısıtlayıcı mıdır?

Evet, çok öyle.


16
GPL, yazılımı "açık kaynaklı" yapmaz. GPL kapsamındaki yazılım ÜCRETSİZ hale gelir (kullanıcının özgürlüğünü korumada olduğu gibi). Özgür yazılım, açık yazılımdan daha eski ve daha anlamlı bir harekettir. İşte farklılıklar hakkında bir makale: gnu.org/philosophy/open-source-misses-the-point.html . Teşekkürler
Jorge Orpinel

11
Aynı nedenlerden dolayı, kullanıcının tüm özgürlüklerini korumadığı ve yazılım özelleştirmesine (= kısıtlama ve kullanıcı tarafından kontrolünün kaybedilmesi) yol açabileceği için MIT'nin daha kısıtlayıcı olduğu ileri sürülebilir. Tekrar teşekkürler
Jorge Orpinel

3
@tcurdt Neden burası özgürlük hakkında konuşmak için "doğru yer" değil? Neden otosansür? Ve hayır, maalesef "özgür" demek bu değil. "Açık" bile bunun anlamına gelmez. Ne MIT ne de GPL lisanslarının "onunla bir şey yapmanıza" izin vermediğini açıklığa kavuşturmak için. Yalnızca lisansı olmayan kod bu kategoriye girebilir. Şerefe
Jorge Orpinel

3
Yine yanlış, stackoverflow.com/help/on-topic için stackoverflow olması gereken şey budur . Birinin bunun konu dışı olduğunu düşünmesi onu öyle yapmaz. Her şeye rağmen, ifade özgürlüğüm var ve burası bir çeşit kamusal alan yani ... Evet. Yanlışlıkla başa çıkamazsın. Gerçekte, elimden gelirse size ve diğer okuyuculara yardım etmeye çalışıyorum. Her neyse, iyi şanslar
Jorge Orpinel

8
@JorgeOrpinel "Yalnızca lisansı olmayan kod bu kategoriye girebilir." Bu çok çok yanlış, lisanssız kod ÖZEL / "tüm hakları saklıdır". Başkalarının lisans olmadan yaptığı kodu yeniden dağıtır ve dolaşırsanız, birçok yasal sorunla karşı karşıya kalırsınız. "Size ve diğer okuyuculara yardım etmeye" çalıştığınızı söylüyorsunuz, ancak okuyucuları dava ettirmek pek yardımcı olmuyor. Sadece bilginize.
noktalı virgül

45

GPL lisanslı kodunu MIT lisanslı bir ürüne ekleyebilir miyim?

Yapabilirsin. GPL, MIT kadar özgür bir yazılımdır, her iki lisans da "içerme" nin her zaman iki yönlü olduğu kodu bir araya getirmenizi kısıtlamaz.

Birleşik bir eserin telif hakkında (yani iki veya daha fazla çalışmanın birlikte bir çalışmayı oluşturması), bir çalışmanın diğerinden "daha büyük" olup olmaması pek bir fark yaratmaz.

Dolayısıyla, MIT lisanslı bir ürüne GPL lisanslı kodu eklerseniz, aynı zamanda GPL lisanslı koduna MIT lisanslı bir ürünü de dahil edeceksiniz.

İkinci bir görüş olarak OSI , her iki lisans (MIT ve GPL) için aşağıdaki kriterleri (daha ayrıntılı olarak) listelemiştir :

  1. Ücretsiz Yeniden Dağıtım
  2. Kaynak kodu
  3. Türetilmiş Eserler
  4. Yazarın Kaynak Kodunun Bütünlüğü
  5. Kişilere veya Gruplara Karşı Ayrımcılık Yapılmaması
  6. Gayret Alanlarına Karşı Ayrımcılık Yapılmaması
  7. Lisans Dağıtımı
  8. Lisans Bir Ürüne Özgü Olmamalıdır
  9. Lisans Diğer Yazılımları Kısıtlamamalıdır
  10. Lisans, Teknolojiden Tarafsız Olmalıdır

Her ikisi de birleşik çalışmaların yaratılmasına izin veriyor, ki bu sizin de istediğiniz şey.

İki eserin birleştirilmesi bir türev olarak kabul edilirse, bu her iki lisansla da sınırlandırılmaz.

Ve her iki lisans da yazılımın dağıtımını kısıtlamaz.

Bana öyle geliyor ki, MIT lisansı ile GPL arasındaki temel fark, MIT'nin değişikliklere ihtiyaç duymaması, oysa GPL'nin yapmasıdır.

GPL, değişikliklerinizi yalnızca siz yaptığınız için serbest bırakmanızı gerektirmez. Bu kesin değil.

Bunu, doğrudan sorduğunuz şey olmayan GPL altında yazılım dağıtımı ile karıştırabilirsiniz.

Bu doğru mu - GPL, MIT lisansından daha kısıtlayıcı mı?

Ben bunu böyle anlıyorum:

Dağıtımın önemli olduğu kadarıyla, tüm paketi GPL altına koymanız gerekir. Paketin içindeki MIT kodu hala MIT altında mevcut olacaktır, oysa GPL, daha yüksek haklarla sınırlı değilse, paketin tamamı için geçerlidir.

"Kısıtlayıcı" veya "daha kısıtlayıcı" / "daha az kısıtlayıcı", bakış açısına büyük ölçüde bağlıdır. Bir yazılım kullanıcısı için MIT, günümüzde bazıları GPL'yi daha kısıtlayıcı olarak adlandırsa bile, GPL altında mevcut olandan daha kısıtlı bir yazılımla sonuçlanabilir. Bu kullanıcı özellikle MIT'yi daha kısıtlayıcı olarak adlandıracaktır. Bunu söylemek sadece özneldir ve farklı insanlar size buna farklı cevaplar verecektir.

Farklı lisansların kısıtlamaları hakkında konuşmak öznel olduğundan, bunun yerine neyi başarmak istediğinizi düşünmelisiniz:

  • Değişikliklerinizin kullanımını kısıtlamak istiyorsanız, MIT dağıtım için GPL'den daha kısıtlayıcı olabilir ve aradığınız şey bu olabilir.
  • Yazılımınızın özgürlüğünün, onu dağıttığınız kullanıcılar tarafından bu kadar kısıtlanmamasını sağlamak istemeniz durumunda, MIT yerine GPL altında yayınlamak isteyebilirsiniz.

Yazar olduğunuz sürece karar verebilecek olan sizsiniz.

Yani, şimdiye kadarki en kısıtlayıcı kişi, herhangi birinin hangi lisansı seçtiğine bakılmaksızın yazardır;)


1
"Paketin içindeki MIT kodu hala MIT altında mevcut olacak" bundan tam olarak emin değilim. bir GPL + MIT projesi, MIT kısmı da dahil olmak üzere açık kaynaklı bir projeye dönüşmelidir. Diğer bir konu için, LGPL tüm proje için daha az müdahaleci.
magallanes

13
Cevabınızda daha sonra açıklığa kavuşturacak olsanız da, GPL lisanslı kodu MIT lisanslı bir projeye dahil edeceğinizi söyleyerek başlamak çok yanıltıcıdır. Başlangıçta MIT lisansına sahip bir proje , yalnızca GPL kapsamında kullanılabilen kodu içerdiğinde artık MIT lisansı altında bir bütün olarak dağıtılamaz .
antinome

3
Kısıtlamanın öznel olduğunu iddia etmek de yanıltıcıdır. "Elde ettiğim bu dosyalarla yasal olarak hangi eylemleri gerçekleştirebilirim?" Diye sormak makul ve öznel olmayan bir sorudur. GPL kapsamında, bu eylemler dizisi aslında bu eylemlerin MIT kapsamında olması gerekenlerin uygun bir alt kümesidir.
antinome

1
@hakra: GPL lisanslı kodun MIT lisanslı bir projeye dahil edilmesi mümkün değildir, çünkü siz dağıtmasanız bile ortaya çıkan bütün artık MIT lisanslı değildir. (Öyle olsaydı , MIT lisansının koşulları onu dağıtmanıza izin verirdi !)
antinome

9
tl; dr: MIT lisanslı bir uygulama GPL kodunu içerebilir ancak ortaya çıkan uygulama MIT lisanslı değildir.
antinome

16

GPL'nin MIT lisansından daha kısıtlayıcı olduğu konusunda haklısınız.

GPL kodunu MIT lisanslı bir ürüne ekleyemezsiniz. GPL ve MIT kodunu birleştiren birleşik bir çalışmayı dağıtırsanız (bazı özel durumlar haricinde, örneğin 'sadece toplama'), bu dağıtımın GPL ile uyumlu olması gerekir.

Bir GPL ürününe MIT lisanslı kodu dahil edebilirsiniz. Kombine çalışmanın tamamı GPL ile uyumlu bir şekilde dağıtılmalıdır. Kodun MIT bölümlerinde değişiklik yaptıysanız, GPL ve MIT kodu içeren bir uygulama dağıtırsanız, bu değişikliklerin kaynağını yayınlamanız gerekecektir.

GPL kodunun telif hakkı sahibiyseniz, elbette bu kodu MIT lisansı altında yayınlamayı seçebilirsiniz - bu durumda bu sizin kodunuzdur ve istediğiniz kadar lisans altında yayınlayabilirsiniz.


3
proje ikili bir lisans altında olmadığı sürece, örneğin jquery.
buggedcom

7
@buggedcom - MIT lisansı altındaki parçaları çift lisanslayabilirsiniz, ancak birleşik bir MIT / GPL kitaplığı için ikili lisans veremezsiniz - yalnızca GPL kapsamında lisanslanmalıdır. (GPL lisanslı parçaları alıp bunları MIT lisansı kapsamında yeniden lisanslayamazsınız, çünkü bu GPL koşullarına aykırıdır). JQuery söz konusu olduğunda, kodun telif hakkı sahipleri onu ikili lisans kapsamında yayınladılar, bu nedenle bu bir sorun değildir, ancak başka bir yerden bazı GPL kodunu "ödünç alırlarsa", artık birleştirilmiş çalışmayı MIT lisansı alamazlar. .
Mark H

AFAIK bu tam olarak doğru değil. FSF'ye göre GPL, MIT lisansı ile uyumludur [1] Maalesef bu, projenin kendisinin artık MIT lisansı kapsamında tamamen kapsanmadığı gerçeğini değiştirmez ... ki bu genellikle insanların beklediği şeydir. Kodu yayınlamadan projeyi bir bütün olarak ticari bir bağlamda kullanamazsınız. Bu karışıklığı önlemek için GPL kodunu MIT lisanslı bir projeye dahil etmemek daha iyidir . Yapamazsın, yine de yanlış. [1] gnu.org/licenses/license-list.html#SoftwareLicenses
tcurdt

... ancak "ürün" olarak tanımladığınız şeye bağlı sanırım
tcurdt

2
MIT lisanslı bir ürün (belki 'uygulama' daha iyi bir kelime olabilir) GPL kodunu içeremez. Bir MIT ürününe GPL kodu ekleyebilirsiniz, ancak ortaya çıkan uygulama yalnızca GPL lisansı altında dağıtılabilir. Daha önce hiç birinin yalnızca GPL hükümleri altında dağıtılabilen bir uygulamayı 'MIT lisanslı ürün' olarak tanımladığını görmemiştim. Lisanslar "uyumlu" değilse, hiçbir şekilde birleşik bir çalışma üretemezsiniz - uyumlu olmaları gerçeği, dağıtabileceğiniz ve GPL lisanslı bir kombine çalışma üretebileceğiniz anlamına gelir.
JosephH

5

IANAL ama gördüğüm kadarıyla ...

GPL ve MIT kodunu birleştirebilirken, GPL kirleniyor. Bu, paketin bir bütün olarak GPL'nin sınırlamalarını aldığı anlamına gelir. Bu daha kısıtlayıcı olduğundan, artık ticari (veya daha ziyade kapalı kaynak) yazılımlarda kullanamazsınız. Bu ayrıca, bir MIT / BSD / ASL projeniz varsa, GPL koduna bağımlılıklar eklemek istemeyeceğiniz anlamına gelir.

Bir GPL bağımlılığı eklemek kodunuzun lisansını değiştirmez, ancak insanların projenizin yapısıyla neler yapabileceğini sınırlar. ASF'nin projeleri için GPL koduna bağımlılıklara izin vermemesinin nedeni de budur.

http://www.apache.org/licenses/GPL-compatibility.html


1
+1 Aslında Microsoft bu sorunu mükemmel bir şekilde tespit ediyor, GPL viraldir çünkü her projeyi açık kaynak koduna çevirir.
magallanes

10
Bu bir değil sorun . GPL, tasarım gereği viraldir. Kodlarını başkalarının diledikleri gibi kullanması için ücretsiz yapmak isteyen ancak aynı zamanda bu yazılımın kopyalarını veya türevlerini yayınlayan diğer kişilerin de kullanıcılara aynı şekilde saygı duymasını isteyen kişiler tarafından kullanılması amaçlanmıştır . GPL ilgili kullanıcılar . Bu, şirketlerin devletin uyguladığı tekeller yoluyla karı maksimize etmesiyle ilgili değil, bu yüzden yinelemeli olması aslında güzelliği ve gücü, Microsoft'un "tam olarak belirleyebileceği" bir "sorun" değil. GPL'nin viral olduğunu anlamak özel bir anlayış gerektirmiyor ~ Wikipedia yeterli.
Carl Smith
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.