LGPL bunu yapmama izin veriyor mu?


16

LGPL yazılımı kullanarak ticari bir yazılım geliştirmeyi planlıyorum.

LGPL yazılımında bir sınıfta kullandığım bazı fonksiyonlar tam olarak uygulanmıyor. LGPL kodunu değiştirmek istiyorum, böylece sınıf ve uygulanmayan işlevler dl dışında sınıfın önünde dllexport ekleyerek ve işlev önünde sanal anahtar kelime ekleyerek görünür hale getirmek istiyorum.

Sonra bu fonksiyonları özel yazılımımda uygulamayı planlıyorum. Değiştirilmiş LGPL kodunu dağıtmaya hazırım, ancak işlevleri istediğim gibi uygulayan özel bir yazılım değil.

Bu LGPL şartlarını ve koşullarını ihlal ediyor mu?



6
Sorunuzun burada olmasıyla ilgili sorun, lisansı yazıldığı ruhla kullanmaya çalışmamanızdır. Muhtemelen lisansların amaçlanan anlamı ile ilgili soruları cevaplayabiliriz, ancak yasal ayrıntılara güvenilir bir şekilde giremeyiz . Bunun için sadece bir avukat önerebiliriz. Dahası, yaptığınız şey, içtihat durumunda ABD'ye yerleşmemiş olan yasal bir soruya (LGPLed yazılımının türetilmiş bir çalışması nedir?) Bağlıdır ve gerçek avukatlar arasında farklı görüşler gördüm. (Ben bir avukat değilim, ama bu sorunları rahatlıkla takip ediyorum.)
David Thornley

Söylemesi zor. Bunu okuyun: javalobby.org/java/forums/t15903.html - Java hakkında konuşuyorlar, ancak herhangi bir OO dili için geçerli görünüyor.
Mike Baranczak

Yanıtlar:


26

Bu karmaşık bir soru, ama teklif ettiğiniz şeye izin verilmediğine inanıyorum.

Bunu yapmak için kütüphaneye eklenmesi kanca öneriyorsun daha kolay sizin için alt sınıfın kütüphane en azından, böylece ve. LGPL ruhunu atlamak için .

Sorun, kendi kodunuzda LGPL lisansına tabi bir sınıfı alt sınıfta bırakırsanız , çalışmanız kütüphaneyi kullanan bir çalışma yerine kütüphaneye dayalı bir çalışma haline gelir , bu da kodunuzun bir türev olduğu anlamına gelir bölüm 6 ( LGPL v2.1 ) altındakiler yerine bölüm 2 ( LGPL v2.1 ) kapsamında olan işler . Yani LGPL'ye tabi !

Stephen Colebourne'un javalobby hakkında iyi bir özet sunduğunu düşünüyorum.

Ben diz sarsıntısı büyük bir hayranı değilim avukat önerilerinizle konuşuyorum , ama bu durumda buna devam etmeyi planlıyorsanız, yapmaya değer olacağını düşünüyorum, aksi takdirde Özgür Yazılım'dan kötü bir mektup alıyorsunuz olabilir Vakıf hukuk ekibi.

Alternatif olarak, doğrudan FSF'ye sorabilirsiniz . Onların itibaren iletişim sayfası :

Özgür yazılım lisanslama ve telif hakkı ile ilgili sorular için

Lütfen lisans SSS bölümümüzü , lisans listesini , genel copyleft bilgilerini ve ilgili sayfaları kontrol edin . Sorularınız devam ederse, <licensing@gnu.org> adresine e-posta gönderin.

Bu arada, ilgili soru Yansıma ve LGPL'de , gbjbaanb LGPL 3.0 perspektifiyle cevap verir .


4
FSF sorusunu öneriyorum
ZJR

Okuduğum şey, LGPL kütüphanesinde daha fazla işlev ortaya çıkarmak istiyorlardı. Ortaya çıkan lib hala LGPL olduğu ve OP yazılımının bir kullanıcısı, lib'i kendi yapılarıyla değiştirmekte özgür olduğu sürece - mutlu olurum
Martin Beckett

3
@MartinBeckett - Pek değil, soru soran kişi, kapalı kaynak kodundaki kütüphaneyi gizlice değiştirmesini kolaylaştırmak için kütüphaneyi değiştirerek LGPL'yi atlatmaya çalışıyor. Yeni kütüphane işlevselliğini doğrudan LGPL'ye ekleyip ardından kendi kodunda kullanıyor olsaydı, sorun olmazdı. Kendi yeni işlevselliğini kapalı kaynağını korumaya devam ediyor ama yine de kütüphanenin bir parçası, sorun bu.
Mark Booth

6
LGPL 3.0 şunları belirtir: "Kütüphane tarafından tanımlanan bir sınıfın alt sınıfını tanımlamak, Kütüphane tarafından sağlanan bir arabirimi kullanma modu olarak kabul edilir." Bu nedenle, en azından LGPL 3.0 altında buna izin verilmelidir.
David

3
@David - LGPL kütüphanesini, normalde aşırı çalıştırılamayan bir işlevi geçersiz kılmanıza izin verecek şekilde değiştirerek, kodunuzun bir kod yerine 'dayalı' kütüphane ile 'tarafından kullanılan' ilişki, böylece zayıf copyleft aktive olur.
Mark Booth

13

Standart Ben bir avukat feragatnamesi değilim.

LGPL, kodunuzu kullanan herkese dağıtılması için kütüphane kaynak kodunda değişiklik yapılmasını gerektirir. O mu değil kütüphane kullanan kod, açık kaynaklı ve aynı lisans altında yayımlanan olmasını gerektirir.

Sınıf mirasıyla ilgili bir bölüm de dahil olmak üzere LGPL'nin daha ayrıntılı, ancak avukat olmayan bir açıklaması için Wikipedia .


+1. Özetlemek gerekirse: LGPL'yi (ancak IANAL) ihlal etmediğini düşünüyoruz
MarkJ

@MarkJ - Ben açıklamak üzere cevabım , ben emin poz olarak, soru basitçe sınıf miras meselesi olduğunu değilim.
Mark Booth

9
Sanırım insanlar "ANAL" içerdiği için IANAL yazmayı seviyorlar.
g33kz0r

5

"LGPL kodunu değiştirmek istiyorum ..." Bu , değiştirilmiş kodlardan herhangi birini serbest bırakmanız gerektiğini söylüyor . Daha sonra değiştirilmiş kodun türev bir çalışma olup olmadığının genişletilmesi çekişmeye açıktır ve bu durumda LGPL'ye tabi olur.

Yapmaya çalıştığınız şey, bu durumda bu tekniklerle yapamayacağınız LGPL'yi atlatmaktır.

Türev bir çalışma ise, programın şartları "müşterinin kendi kullanımı için modifikasyona ve bu modifikasyonların hatalarını ayıklamak için tersine mühendislik" e izin vermelidir. LGPL programı kullanan bir çalışmanın türevsel bir çalışma olup olmadığı yasal bir konudur.

Ama eğer yapmaya çalıştığınız LGPL'yi atlatmaksa Mark Booth'un önerdiği şekilde FSF ile iletişime geçirdim .


1
Sorun şu ki, LGPL bazı tür eserlere izin verirken, diğerlerine izin vermiyor. Cevabımı , kütüphaneye dayanan çalışma kategorisine giren (LGPL olması gereken) ve kütüphaneyi kullanan (olmayan) çalışma arasında bir ayrım yapmak için güncelledim .
Mark Booth

@MarkBooth Sizinle ve diğerleriyle aynı fikirdeyim, bu durumda work based ondaha önce özel kodu ortaya çıkarmak için LGPL'de değişiklik yapıyorlar.

1

Tahminim: (ama IANAL) değiştirilmiş kütüphaneyi LGPL kodu olarak serbest bırakmalı ve daha sonra ticari bir programa bırakmalısınız. Bu işe yarar. Etkili bir şekilde kütüphanenin açık kaynak çatalına sahip olursunuz ve bunun için bir ön uç satarsınız.

Fakat diğerlerinin haklı olarak söylediği gibi, FSF'ye sorun : orada sahip olduğunuz ilginç bir patolojik senaryo; uygulanabilir olup olmadığını merak ettiğiniz kadar merak ediyor olabilirler. (veya en azından konu hakkında bir SSS girişi yayınlayacak kadar rahatsız edin)


1

https://www.gnu.org/licenses/lgpl-java.html

LGPL kitaplıklarını içe aktaran bir Java uygulaması dağıtırsanız, LGPL'ye uymak kolaydır. Uygulamanızın lisansı, kullanıcıların kitaplığı değiştirmesine izin vermeli ve bu değişikliklerde hata ayıklamak için kodunuzu tersine değiştirmelidir. Bu, kaynak kodu veya uygulamanızın dahili bilgileri hakkında herhangi bir ayrıntı sağlamanız gerektiği anlamına gelmez. Tabii ki, kullanıcıların kütüphanede yapabileceği bazı değişiklikler arayüzü bozabilir ve kütüphanenin uygulamanızla çalışamamasına neden olabilir. Bunun için endişelenmenize gerek yok — kütüphaneyi değiştiren kişiler, çalışmasını sağlamaktan sorumludur.

Kısacası, kitaplık kodunun kendisini değiştirmediğiniz sürece kalıtımla ilgili bir sorun yoktur, ancak değiştirseniz bile, uygulama kodunuzu değil, yalnızca kitaplık değiştirilmiş kodu serbest bırakmanız gerekir.


1
Cevabınız diğer birkaç cevapla çelişiyor, ancak iddialarınızı destekleyecek çok şey sağlamıyor. Diğer cevaplar daha ayrıntılıdır ve iddialarını açıklamak için daha iyi bir iş çıkarır. Lütfen düzenlemek Talebinizi geri amacıyla lisans veya FSF alakalı tırnak sağlamak için cevabınızı.

Aslında cevabım iddialarımı destekleyecek fazla bir şey sağlamıyor mu? LGPL ve sınıf mirası hakkındaki karışıklığı ortadan kaldıran resmi GNU sayfasına bağlantı vermiştim. LGPL v3'ü kapsayacak şekilde güncellenmiştir.
Nik.B

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.