Yalnızca istemci yazılımını dağıtıyorsam, GPL lisanslı yazılımı sunucumda ticari olarak kullanabilir miyim?


15

Ben kuralları anlıyorum GPL I GPL kod kullanarak herhangi bir yazılım dağıtmak, sonra kod bu belirten gerekir edilmesi GPL lisanslı .

Ancak, bu durumda kuralların ne olduğunu merak ediyorum: İstemci tarafı yazılım satıp dağıtacağım bir hizmet oluşturuyorum .

İstemci tarafı yazılımında kesinlikle GPL kodu yoktur. % 100 kendi kodum.

Ancak, istemci yazılımı dahili olarak GPL kodunu kullanan sunucuma bağlanacaktır.

Ben am değil benim sunucu tarafı yazılım dağıtan; sunucu tarafı yazılımı, yalnızca kontrol ettiğim özel bir sunucuda yaşayacak, ancak istemci tarafı yazılımı, söz konusu sunucuya bağlanmadan çalışmaz.

Bu bir yazılım olarak sayılıyor mu? Bunu yaparsam, müşteri tarafı kaynak kodumu GPL olarak lisanslamam gerekir mi? Veya istemci tarafı yazılımı kaynak kodunu yayınlamadan satabilir miyim?

Yanıtlar:


12

Bu kesin bir konu değil. Spektrumun iki uç ucunu düşünün:

  1. Özel istemci yazılımınız bir HTTP istemcisidir ve HTML yanıtları verir. Herhangi bir HTTP sunucusuyla çalışabilir. Hizmetiniz için kullandığınız HTTP sunucusu GPL bileşenlerini kullanıyor.

  2. GPL lisanslı bileşenler kullanan bir programınız var. Bu programın çalışmasında rasgele bir nokta seçiyorsunuz ve programı iki programa bölüyorsunuz. İki program tamamen gereksiz ağ üzerinden iletişim kurar. Tüm GPL lisanslı bileşenleri GPL kapsamındaki ilk programa ve lisansa koyarsınız ve diğer programı GPL uyumlu olmayan bir lisans altında lisanslarsınız.

İlk dava açıktır. İkinci dava net değil. Özel davanız hakkında fazla bilgi vermediniz ve bunu yapsanız bile, sadece bir mahkeme kararı haklı olup olmadığınıza kesin olarak karar verebilir.

GPL SSS'nin birlikte çalışabilir, ayrı olarak lisanslanan programlar hakkında şunları söylemesi gerekir :

Ancak, çoğu durumda GPL kapsamındaki yazılımı tescilli sisteminizin yanına dağıtabilirsiniz. Bunu geçerli bir şekilde yapmak için, özgür ve özgür olmayan programların silah uzunluğunda iletişim kurduğundan, onları etkili bir şekilde tek bir program yapacak şekilde birleştirilmediğinden emin olmalısınız .

Bu ve GPL kapsamındaki yazılımı “dahil etme” arasındaki fark kısmen madde ve kısmen biçimdir. Esas kısım şudur: eğer iki program etkili bir şekilde bir programın iki parçası olacak şekilde birleştirilirse, bu programlara iki ayrı program olarak davranamazsınız. Yani GPL her şeyi kapsamalıdır.

Müşterinizin sunucunun "aynı programın iki bölümü" standardını karşılayıp karşılamadığına (ve her birinin GPL kapsamında lisanslanması gerekip gerekmediğine) karar vermelisiniz. GPL SSS , bu konu hakkında başka bir soru hakkında daha fazla açıklama verir :

İki ayrı program ile iki parçalı bir program arasındaki çizgi nerede? Bu, nihayetinde yargıçların karar vereceği yasal bir sorudur. Uygun bir kriterin hem iletişim mekanizmasına (exec, borular, rpc, paylaşılan bir adres alanı içindeki fonksiyon çağrıları, vb.) Hem de iletişimin semantiğine (ne tür bilgilerin değiştiği) bağlı olduğuna inanıyoruz .

...

Aksine, borular, soketler ve komut satırı argümanları normalde iki ayrı program arasında kullanılan iletişim mekanizmalarıdır. Bu yüzden iletişim için kullanıldıklarında, modüller normalde ayrı programlardır. Ancak , iletişimin anlambilimi yeterince yakınsa, karmaşık iç veri yapılarını değiş tokuş etmek, bu iki parçayı daha büyük bir programda birleştirmek için bir temel olabilir .

Bu nedenle, ağ iletişimi kesinlikle "iletişim mekanizması" testini geçmektedir, ancak istemci / sunucu çiftinizin "iletişim semantiği" testine nerede düştüğü belirsizdir.


Ayrımı, programlar arasındaki arayüzün ne kadar yaygın olduğuna dayandırmak makul olur mu? Örneğin, tescilli bir satranç motoruyla iletişim kuran bir GPL kullanıcı arayüzü programı kullanan bir satranç oyun sistemi uygularsam ve kendi satranç motorlarını yazmak isteyen herkesin aynı UI ön ucunu nasıl kullanabileceğini belgelersem, Birisi alternatif bir motor yazmazsa, UI ön ucunun özel programla konuşmaktan başka bir amacı olmayacak olsa da, bunun GPL ruhunu (ve umarım mektubu) karşılaması gerektiğini düşünün.
supercat

Hmm. Bu soruyu çok belirsiz bir şekilde sordum çünkü genel olarak GPL'yi merak ediyordum. Ancak, şimdi farkı anladığımı düşünüyorum. Sunucumda istemci yazılımımın çalışması gereken kullanıcı hesabı bilgileri varsa, bu GPL'yi açıkça ihlal eder. Sunucum, istemci yazılımımın iki sürümünün birbiriyle iletişim kurmasına izin veren bir paket geçiş sunucusu gibi bir şeyse, bu iyi olur. Bu varsayımlarda doğru muyum?
Steven Jeffries

4

Bir ağ üzerinden iletişim kuran iki süreç, bir kütüphane ile çalıştırılabilir bir bağlantının yaptığı gibi türetilmiş bir çalışmanın yaratılmasını gerektirmez. Bu nedenle, sunucudaki GPL kodu istemci kodu için geçerli değildir.

GPL altında, ikili dosyaları dağıtırken değiştirilmiş kaynak kodunu dağıtmanız gerekir. Sunucu ikili dosyalarını dağıtmadığınız için, sunucu kaynak kodunu dağıtmanız gerekmez.

GNU Affero GPL, yararlanmak istediğiniz bu döngü deliğini kapatmak için tasarlanmış ek dökümanlara sahip GPL'ye benzer bir lisanstır (bkz: http://www.gnu.org/licenses/why-affero-gpl.html ve http://en.wikipedia.org/wiki/Affero_General_Public_License#Examples_of_web_applications_under_GNU_AGPL ).

Feragatname: Ben bir geliştiriciyim, avukat değil.


3
Uyarı sadece bir not: müşteri özellikle iletişim kurmak için tasarlanmışsa bu sunucu yazılımı, o zaman FSF tamamen mümkün olduğunu yapar olarak sunucu ve istemci yazılımı düşünün bir ürün. Ayrıca bkz . GPL SSS
Bart van Ingen Schenau

Diğer taraftan, üçüncü bir taraf, sunucu yazılımını veya lisansını görmeden sunucunuzla iletişim kurmak için istemci yazılımı yazarsa, bu argüman saçma görünür. Microsoft, örneğin Outlook sunucularına bağlanan yazılım yazan herkese dava açabileceği anlamına gelir.
gnasher729

2

İstemci yazılımı düzgün çalışması için sunucu yazılımına bağlı mı? Başka bir deyişle, istemci yazılımı sunucuya bağlı olmadan çalışır mı?

Bunun cevabı "evet" ise ve sunucu istemci yazılımınıza yalnızca temel bir destek değil, ek bir özellik sağlıyorsa, büyük olasılıkla netsiniz demektir. Sunucu yazılımı istemci yazılımının ayrılmaz bir parçasıysa ve istemci yazılımına temel işlevsellik sağlıyorsa (yani istemci yazılımı sunucu olmadan çalışmaz), bu kombinasyon GPL kapsamındaki türetilmiş bir çalışmadır .


Ben dikkatli bir tarafında err ve edecektir değil sonra benim sunucusunda GPL kodu kullanabilirsiniz.
Steven Jeffries

2
@StevenJeffries Bu cevap hem mevcut uygulamalara hem de GPL gerekliliklerine aykırıdır. Bir yazılımı veya türetilmiş bir işi dağıtmadığım sürece, GPL'nin yazılımını Linux, GCC veya WordPress gibi bir sunucuda kullanmakta özgürüm. Yalnızca bir yazılım kullanmak türetilmiş bir çalışma oluşturmaz. GPL söz konusu olduğunda, en azından işlem düzeyinde ayırma söz konusu olduğunda iyi olduğu kabul edilir (paylaşılan hafıza yok, paylaşılan veri yapısı yok). Doğru çözüm ve referanslar için J. Lenthe'nin cevabına bakınız.
amon

@amon: Sunucu ve istemci arasında veri yapılarını bile paylaşmıyorsanız haklısınız. Yine de böyle olduğundan şüpheliyim. Çizdiğim ayrım (düzgün çalışması için sunucu yazılımına bağımlı istemci yazılımı) keyfi değil; FSF'nin "türetilmiş bir çalışma" olarak görmediği şey için iki temel gereksinimden biridir; diğeri "silah uzunluğu iletişimi" dir. Benim sözüme güvenme; FSF web sitesinde kendiniz okuyun.
Robert Harvey

@ amon: Bununla ilgili daha fazla bilgiyi buradan edinebilirsiniz .
Robert Harvey

@amon Çok alakalı başka bir GPL SSS öğesi (Robert'in bağlantısını okuduktan sonra takip etmek iyi) bu, özellikle son üç paragraf: gnu.org/licenses/gpl-faq.html#MereAggregation
apsillers
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.