Kitaplığı işlem dışı bırakarak GPL ihlalinden kaçının


21

GPL lisanslı bir kütüphane olduğunu varsayalım. Kapalı kaynaklı proje kullanmak istiyorum. Aşağıdakileri yapıyorum:

  1. Soket dinleyen, mesajları çözümleyen ve GPL kitaplığını çağıran GPL kitaplığının etrafında küçük bir sarmalayıcı uygulaması oluşturun. Sonra sonuçları geri döndürür.
  2. Kaynaklarını serbest bırakın (GPL'ye uymak için)
  3. Ana uygulamamda bu sarıcı için istemci oluşturun ve kaynakları serbest bırakmayın.

Bunun statik / dinamik bağlantıya göre daha fazla yük getirdiğini biliyorum, ancak teorik olarak ilgileniyorum.


6
Yazdığınız sarıcı, GPL lisansı altında lisanslanır. Bu nedenle,
sarıcıyı

4
neden önce yazarla iletişim kurmuyorsunuz ve bunun yerine LGPL veya benzeri bir lisansla lisans alıp alamayacağınıza bakın.
jk.

8
@TZHX Sarma makinesinin bir sunucu görevi gören ayrı bir uygulama olacağına - kendi özel kodunun istemcide olacağına inanıyorum
jk.

Ayrıca kapalı kaynak uygulaması da dağıtılacak kim? ve hangi GPL lisansı lisans ise
jk.

2
(jwenting soruyu açıkça işlemin bittiğini söylüyor
jk.

Yanıtlar:


32

Yasal olarak , tamam olacağını söyleyebilirim (ama ben bir avukat değilim - yasal tavsiye için bir avukata danışın).

Ahlaki olarak , oldukça anlaşılır bir şey. GPL'yi beğenmiyorsanız, "uygun" çözüm bir GPL kitaplığı kullanmak değildir.

Düzenleme : GPL'nin, dinamik bağlantıya izin verilip verilmeyeceği konusundaki yasal durumu ne olursa olsun netleştirmek için, LGPL, kitaplıklar durumunda dinamik bağlantıya izin vermek amacıyla özel olarak oluşturulmuştur. Bu yüzden bana öyle geliyor ki, LGPL üzerinden GPL'yi seçerek, kütüphanenin yazarı dinamik bağlantıya izin vermemek için açıkça yapıyordu . Bence yazarın koduna yönelik açık niyetini ifade eden yasal bir kısıtlama etrafında çalışmak için teknik bir araç kullanmak bence anlaşılabilir bir şey.

Kayıt için kişisel olarak GPL hayranı değilim (MIT veya BSD gibi daha izin verilen bir lisansı tercih ederim). Ancak, diğer geliştiricilerin çalışmalarına saygı duymanın büyük bir hayranıyım ve onların kütüphanelerini kapalı kaynak kodlu yazılımla ilişkilendirmenizi istemiyorlarsa, bu ayrıcalıklıdır.


12
Burada ahlaki bir sorun olduğunu sanmıyorum - GPL açıkça kullanımına izin veriyor gibi görünüyor
jk.

3
Buradaki @vartec resmi GPL SSS'den alıntı yapmaktadır: "Statik veya dinamik olarak diğer modüllerle bağlantı kurmak, temelli bir çalışma yapar. Bu nedenle, GNU Genel Kamu Lisansı'nın hüküm ve koşulları tüm birleşimi kapsar." Stallman, Açık Kaynak'ın ne olduğuna dair farklı bir vizyona sahipse, bundan nefret ettiği anlamına gelmez. O, bu hareketin ana ideologlarından biri.
Andrey,

8
@vartec: SİZİN uygulamasında SOMEONE ELSE kodunu SİZİN uygulamasında kullandığınızda, HE'nin HIS kodunu kullandığı koşullara uymanız gerektiğinin farkında olmadığınız izlenimini edindim. Beğenmedin mi Başkasının GPL kodunu kullanmayın. Bu kadar basit.
John R. Strohm,

3
İşte benim önerim: çok bağımlı göründüğünüz GPL kodunun dışına çıkın ve mahkemenin nasıl sonuçlandığını görün. GPL3 GPL2'ye bu kadar yasal bir delik açmak için yaratıldı, bu yüzden belki de bundan kurtulacaksınız. İnsanların şerefine geçit töreni atacağından şüpheliyim, çünkü yasal bir manevradan kaçtın ve yeterince etkili olursan insanlar, kodlarını yalnızca seni kızdırmak için daha fazla kullanım koşuluyla lisanslayacaklar. Sonunda, bu gibi konulardan kaçınarak dünyayı iyileştirebilir.
Godeke

3
Ben ŞİDDETLE ahlaken kınanması gereken olduğunu iddia ile katılmıyorum. Ahlaki açıdan anlaşılır olan, insanlara GPL'nin yapmasına izin verdiği şeyleri yapma hakkına sahip olmadıklarını söylemektir. GPL'nin altına bir çalışma koyduğumda, GPL'nin kurallarının uygulanmasını istediğim için yapıyorum. İnsanlara, GPL’nin kendilerine verdiği hakları kullanmamaları gerektiğini söylemek çok önemlidir. Bu GPL'nin izin verdiği bir şey. GPL’nin altına işler yerleştirenler buna izin vermek istedikleri için .
David Schwartz

6

IANAL ama tamam olduğuna inanıyorum, GPL3'ün ilgili kısmı 5. bölümün sonunda:

Kapsanan bir işin, kapsanan işin doğası gereği olmayan ve bir depolama veya dağıtım hacminde veya üzerinde daha büyük bir program oluşturmak gibi birleştirilmiş olmayan diğer ayrı ve bağımsız eserler ile derlenmesi. Derleme ve sonuçta elde edilen telif hakkı, derleme kullanıcılarının bireysel çalışmalarının izin verenin ötesine geçme haklarını veya erişim haklarını sınırlamak için kullanılmazsa, orta, “toplu” olarak adlandırılır. Kapsanan bir çalışmanın bir topluluğa dahil edilmesi, bu Lisansın topluluğun diğer bölümlerine uygulanmasına neden olmaz.

Muhtemelen bu, 'müvekkilinizin' tam olarak ne yaptığına bağlı olacak, mouviciel'in cevabı muhtemelen nasıl güvenli bir şekilde yapılacağına dair iyi bir rehber

Uygulamanızın, bir araya getirilmiş bir şey yerine kütüphanenin bir uzantısı olduğunu düşünüyorsanız, o zaman muhtemelen haklısınızdır (bunu bilmek için iyi bir yerde olmalısınız). Bu durumda en iyi seçeneğiniz yazara başvurmak ve farklı lisans

Bu , açıkça yapıldığına göre, GPL tarafından açıkça izin verildiği konusundaki görüşümü destekliyor.


Okudum ama sorun GPL metninin geliştirme aşamasında değil yasal dilde yazılmış olması . Sarıcı ile hile ticari uygulaması "türev" değil, "toplu" yapmaktır. Ancak bunun “kapsanan işin doğası uzantıları” altında kaldığını düşünüyorum.
Andrey,

Hukuk dilinden yardım almak için bir avukata ihtiyacınız olacak. Uygulamanızın, bir araya getirilmiş bir şey yerine kütüphanenin bir uzantısı olduğunu düşünüyorsanız, o zaman muhtemelen haklısınızdır (bunu bilmek için iyi bir yerde olmalısınız). Bu durumda en iyi seçeneğiniz yazara başvurmak ve farklı lisans
jk.

1
@Andrey: Programınızın "doğası" doğrudan GPL koduna bağlıysa, yukarıda belirtilen bölüm geçerli olmaz. Sorunuzdan öyle geliyor. Buna bir örnek, önerdiğiniz mekanizma aracılığıyla GNU okuma çizgisini yeni kullanan bir ağ saldırı analiz programı olabilir. (Readline ilginç bir test durumudur çünkü BSD lisanslı bir
iade

"Toplu" maddesi, aynı CD-Rom ya da Linux dağıtımında olmanın bir türev oluşturmadığını açıkça ortaya koymaktır.
Sean McMillan

6

Bkz Benim özel bir sistemde GPL kapsamlı yazılım dahil etmek istiyorum. Bunu yapabilir miyim?

Sorun şu ki, sarmalayıcı uygulamanız kendi başına herhangi bir kullanımda mı? Programınızın GPL olan bir komut satırı sürümü yaptıysanız, GUI'yi farklı bir lisans altında yayınlayabilirsiniz. Örneğin, kapalı kaynak olan gcc için bir IDE veya diff'e dayalı bir görsel diff aracı yapabilirsiniz.

Bununla birlikte, eğer kitaplığı tamamladıysanız, programınız tarafından kullanılmasından başka bir işe yaramazsa ve programın bu kitaplık olmadan da kullanımına gerek kalmaz, türetilmiş bir çalışma ve GPL kapsamında yayınlanması gerekir.


Anladığım kadarıyla sargıyı MIT altında lisanslayabilir ve yine de iyi olabilirsiniz.
Ekmek Kızartma Makinesi

2
Colin, kesinlikle hayır. Sarıcı, GPL kitaplığı ile açıkça tek bir ikili dosyada birleştirilmiştir. GPL kodunu bir ikili dosyada kullanmak için, lisansa uymak için kendi kodunuzu GPL’ye
Beton Gannet

5

IMO, yasal olarak tamam. (IANAL) Konunun ahlaki yönünü iyileştirmek için, "FooBar'ı MyClosedApp için yasal olarak kullanılabilir yapan bir FooBar sarıcısı" olarak adlandırmayın, sunucu olarak adlandırın. "Ağ üzerinden FooBar yapmanıza izin veren" küçük, açık kaynaklı bir program yapın. SourceForge'a yerleştirin veya proje sayfasını ve talimatlarını ve başka şeylerini içeren bir web sitesini kendisine adamak. O zaman "MyClosedApp" "FooBar sunucusunu" kullansın.


2

Anladığım kadarıyla, GPL kitaplığı olmadan çalışmalarını yapabildiği sürece yazılımınızı kapalı kaynaklı olarak bırakabilirsiniz. GPL kitaplığını, olmaması yazılımınızı işe yaramaz hale getirmeyen bir eklenti olarak görün.


1
bu kesinlikle yanlıştır. eklenti olarak kullanmak (aka dinamik bağlantı) sonuçta elde edilen uygulamayı "türev" ve GPL konusu yapar.
Andrey,

Eklentinin daima dinamik olarak bağlantılı ile eşanlamlı olduğundan emin değilim. Ve kesinlikle bu durumda OP, hiçbir şeyi dinamik olarak ilişkilendirmeyi önermiyor, bu yüzden mouviciel'in tavsiyelerinin geçerli olduğunu düşünüyorum
jk.

Sadece bir eklenti oluşturursanız ve GPL lisansına dayanıyorsa, bu ihlal olarak kokuyor.
Andrey,

4
Soket bir ağ üzerinden olmasaydı AGPL bunu yasaklamazdı. Oldukça spesifik. Ayrıca, bu bir kullanışlılık testi değil, GPLed ve tescilli yazılımların ne kadar yakın oldukları konusunda bir testtir. Statik bağlantı kesinlikle çok yakın, soketler (belirli AGPL vakası hariç) kesinlikle iyi, dinamik bağlantı olabilir veya olmayabilir (Her iki taraftaki yasal sondaj tartışmalarını duydum ve henüz ABD içtihat hukuku yok).
David Thornley

1
@Andrey: Artık Photoshop gibi kapalı kaynaklı bir yazılım GPL bileşeni olmadan işini yapabildiği sürece, GPL yapmadan dağıtabildiğini söylüyorsun. Bu tam olarak bu cevabın söylediği şey.
Doktor Brown,

1
  1. Açık Kaynak alternatifi bulmaya çalışın, eğer yoksa, GPL'ye gidin;
  2. Affero yan tümcesine sahip olan GPLv3 olup olmadığını kontrol edinYapılması gereken bir şey olup olmadığını ;
  3. GPLv2 ise, tam istediğiniz gibi yapabilirsiniz;

Ayrıca tartışmalı bir seçenek de var. Çoğu yasama altında, dinamik bağlantı "türetilmiş iş" ile sınırlandırılmalıdır. Bunun arkasındaki mantık dinamik olarak bağlanırken sadece programınıza başlık dosyaları dahil etmektir. Birçok mevzuatta başlık dosyaları API tanımı olarak kabul edilir ve açıkça telif hakkı dışında bırakılır. Öte yandan, dinamik bağlantı ile, son kullanıcının sisteminde GPL kitaplığı ile fiili bağlantı yapılmaktadır. Ama dediğim gibi, bununla ilgili çok fazla tartışma var, Stallman buna şiddetle karşı çıkıyor.


kesmek imkansız kılan GPL v2 ve v3 arasındaki bu fark nedir? Bunu dinamik bağlantı değil, onları mümkün olduğunca ayırıyorum.
Andrey,

GPLv3'ün hedeflerinden biri, bu “afet” yöntemini önlemekti.
vartec

4
İlk olarak, GPL çeşitleri resmi, OSI onaylı, Açık Kaynak lisanslarıdır (reklam şartı olmadan BSD lisansı Stallman onaylı bir Özgür Yazılım lisansı olduğu için). İkincisi, hiçbir GPL sürümü (Affero dahil) GPLed ve özel yazılımların soketler gibi standart süreçler arası iletişim yöntemleri ile iletişim kurmasına izin vermenizi kısıtlamaz.
David Thornley

Örnek DRM maddesi sağlayan IMO GPLv3 Açık Kaynak Tanımı noktasını 6. ihlal opensource.org/docs/osd
vartec

1
@vartec: DRM bir "Çalışma Alanı" değildir. "Örneğin, programın [ticari bir teşebbüste] kullanılmasını veya genetik araştırma için kullanılmasını kısıtlayamayabilir." Görünüşe göre OSI, GPL3'ün Açık Kaynak olduğuna inanıyor ve tanımlarının tüm noktalarını yerine getiriyor, çünkü onayladılar.
Thomas Edleson

0

Adam Brown'ın GPL kütüphanesini kullanan ve bir "sunucu" olarak çalışan bir program yazması yasal mıdır, eğer kaynak kodunu, onunla ilgili her şeye yayınladıysa, ancak yayınladığı tek müşteri kodu oldukça zayıftı çünkü hepsi bu. müşteri tarafı mı yazdı? Olmayacağını düşünen hiçbir temel göremiyorum.

Charles Dover, Adam Brown'un sunucusunu bulduysa ve onunla iletişim kurmak için kapalı kaynak kodlu bir program yazmaya karar verdiyse, GPL eylemlerini herhangi bir şekilde kısıtlar mı? Görebildiğimden değil, çünkü GPL'ed yazılımını tek kullanması Adam Brown'dan aldığı ikili dosyalar olacaktır. Adam'ın ikili dosyalarını dağıttıysa, kaynağa da bir bağlantı dahil etmesi gerekirdi, ancak GPL'de başka hiçbir şey Charles'ın kodlarını etkilemeyecekti.

Bir kişinin GPL lisanslı bir sunucu yazması ve ardından sunucuyu kendi kapalı kaynak amaçları için kullanmasıyla ilgili olarak, sunucuyu yazarken sunucuyu çalıştırmak için iyi bir çaba göstermesi durumunda herhangi bir yasal sorun olacağını düşünmüyorum. Verilen GPL kodunu aynı şekilde kullanmak isteyebilecek olanlara faydalıdır. Özellikle, arayüzün halka açık bir şekilde yayınlanmış dokümantasyonu, yetkin bir programcının, orjinali olduğu gibi müşteri programı tarafından kabul edilecek bir sunucu için kod yazmasına ve kullanacağı müşteri programlarını yazmasına izin vermek için yeterli olmalıdır. Sunucu yazarın uygulaması ile aynı şekilde.

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.