Statik bağlantıya izin veren değiştirilmiş bir LGPL lisansı var mı?


21

LGPL , eğer bir program LGPL-ed kütüphanesini kullanıyorsa, kullanıcıların programı kütüphanenin farklı bir sürümüyle yeniden bağlayabilmesi gerekir:

...

d) Aşağıdakilerden birini yapın:

0) Bu Lisansın hükümleri uyarınca Minimal Sorumlu Kaynağını ve Sorumlu Uygulama Kodunu, kullanıcının aşağıdakileri yapmak için Bağlantılı Sürümün değiştirilmiş bir versiyonuyla Başvuruyu yeniden birleştirmesine veya yeniden bağlamasına izin veren bir formda iletin. Karşılık gelen Kaynağı iletmek için GNU GPL'nin 6. bölümü tarafından belirtilen şekilde değiştirilmiş Kombine Çalışma.

1) Kütüphaneye bağlanmak için uygun bir paylaşımlı kütüphane mekanizması kullanın. Uygun bir mekanizma, (a) kullanıcının bilgisayar sisteminde zaten mevcut olan bir Kütüphanenin bir kopyasını çalışma zamanında kullandığı ve (b) Kitaplığın Bağlantılı Sürüm ile arayüzle uyumlu olan değiştirilmiş bir sürümüyle düzgün çalışacağı bir mekanizmadır.

...

Ancak bazı durumlarda, bu önemli zorluklar doğurabilir. Özellikle, Haskell programları neredeyse her zaman statik olarak derlenir. Ayrıca, derleyici çapraz modül optimizasyonları yapar, böylece kodun bir kısmını çıkarmak ve başka bir şeyle değiştirmek mümkün değildir. Yani bu durumu karşılamak çok zor. ( Haskell Wiki'deki bu bağlantıya bakınız .)

Dinamik bağlantı bir çözüm olabilir, ancak çoğu durumda bu mümkün değildir. Örneğin:

  • Bazı platformlarda dinamik bağlantı olmayabilir.
  • Bazı dillerde dinamik bağlantı imkanı yoktur. Veya, modülleri çoklu platform yapmak mümkün değildir.
  • Bazı durumlarda dinamik bağlantı önemli optimizasyonları önler. Bunun nadiren ciddi bir sorun olduğunu söylesem de, Haskell gibi dillerde performans kaybı önemli olabilir.

Bu nedenle, yeniden bağlantı kurulmasını gerektirmeyen standart bir LGPL benzeri lisans arıyorum (ve kullanıcılara verilen özgürlüğü biraz ortadan kaldırdığını anlıyorum). Bazı projeler kendi LGPL değişikliklerini kullanır, örneğin wxWidgets . Ancak, belki de bazı hukuk uzmanları tarafından kontrol edilen ve (L) GPL ile uyumlu olan, daha resmi olan bazı standart lisansları kullanmayı tercih ederim. Bunun gibi var mı?

(Ayrıca LGPL'nin bu tür bir değişikliğinin öngörülemeyen sonuçları olup olmadığını bilmek isterim.)


Sen olamaz dinamik dış kitaplıkları bağlantı Haskell? Bu uygunsuz olmalı!
Robert Harvey,

2
Projenizin tamamı FOSS ise, bu sorun olmayabilir. Kaynaklardan onları yönlendirin ve izin onları dışarı sıralamak! :-)
Peter Rowell,

2
Bu lisansı copyleft olmayan lisanslardan ayıran nedir?

2
@delnan LGPL'de çoğu zaman istenen başka şeyler var. Örneğin, herhangi bir modifikasyonun (L) GPL olmasını gerektirir veya geçiş yapmayı yasaklar .
Petr Pudlák

WxWindows lisansı, OSI tarafından onaylandığı taktirde, resmi olduğu kadar resmidir .
Joachim Sauer

Yanıtlar:



12

wxwidgets , esasen = LGPL + statik bağlantı altında lisanslanmıştır

... esasen L-GPL (Kütüphane Genel Kamu Lisansı), ikilik biçimde türetilmiş eserlerin kullanıcının kendi şartlarına göre dağıtılabileceğini belirten bir istisna dışında. Bu, GPL'ed yazılımı wxWidgets kullanarak üretmek isteyenler ve aynı zamanda tescilli yazılımlar üretenleri karşılayan bir çözümdür.

wxWidgets Sertifikalı Açık Kaynak Kodlu Yazılım Katılımcıları Bu karara yol açan tartışmalara Abisource , Robert Roebling, Julian Smart, Markus Fleck, Karsten Ballueder ve Richard Stallman'dan bazı tavsiyeler de dahil. Richard, yeni lisansın GPL'nin uygulamalarıyla uyumlu olduğunu onayladı. Ancak, tescilli uygulamalarda önemli bir kısıtlama yoktur.

WxWindows Lisansı Açık Kaynak Girişimi tarafından onaylanmıştır ve lisansı burada kendi sitelerinde bulabilirsiniz ...


0mq ayrıca LGPL kapsamında açık bir statik bağlantı istisnasıyla lisanslanmıştır.
Trevor Powell,

4

IANAL, ancak bir çözümün LGPL dışı parçalar için nesne dosyaları sağlamak olduğuna inanıyorum. Bu şekilde kullanıcı programı yeniden bağlayabilir ve LGPL'nin gereksinimlerini karşılayarak LGPL parçasını değiştirmekte özgürdür.

Başka bir deyişle, LGPL kaynaklarına ve LGPL olmayan kodun derlenmiş nesne dosyalarına sahip bir kaynak paketine sahip olmanız gerekir. Açıkçası, ikilileri serbest bıraktığınız her farklı mimari için nesne dosyaları sağlamanız gerekir, ancak bunun çok fazla bir sorun olduğunu sanmıyorum.

Geliştirme açısından bakıldığında, en basit örnek, dağıtım için ikili yapı oluştururken aynı zamanda kaynak paketi de derleme sisteminin inşa etmesi olabilir.


Bunun gerçekleştiği gerçek bir senaryon var mı?
15'te knocte

3

Google’da bir tane buldum: OpenScales lisansı

OpenScales, GNU Lesser Public License'nin (LGPL, burada mevcut ) 3. sürümünde , statik bağlantı istisnasıyla ilgili bir istisna ile birlikte piyasaya sürüldü (aşağıya bakınız) ...

LGPL lisans metnine ek olarak, LGPL koşullarının istisnası OpenScales için de geçerlidir:

GNU Lesser General Public License sürüm 3'ün özel bir istisnası olarak, üçüncü bir kişiye, bu Kütüphanenin yürütülebilir dosyadaki bölümlerini statik veya dinamik olarak bağlayan ve Asgari Karşılık Gelen Kaynağı ileten bir Kombine Çalışma'dan yürütülebilir bir dosya aktarabilirsiniz. Kütüphane'nin değiştirilmemiş bir şekilde halka açık olarak dağıtılmış versiyonunu kullandığınız sürece, GNU’nun Daha Az Genel Kamu Lisansının 4d0. Bu istisna, yürütülebilir dosyanın GNU Küçük Genel Kamu Lisansı veya GNU Genel Kamu Lisansı kapsamına girmesinin başka nedenlerini geçersiz kılmaz.

Yine de standart değil ve var olup olmadığını bilmiyorum.


1

Kullanıcı özgürlüğünü garanti etmeye nasıl devam edersiniz? "Doğru" cevabının, kütüphaneyi dinamik olarak yükleyen bir şimi statik olarak bağlamak olduğuna inanıyorum.


Evet, bu en iyi çözümdür. Ancak bazı durumlarda dinamik bağlantı mümkün değildir. Bazı dillerde bu olasılık yoktur. Veya bazı platformlarda bu olasılık yoktur.
Petr Pudlák 1212'de

Aslında, bağlayıcılar tam olarak bunu yapar; dinamik olarak kitaplığa bağlanırken.
Calmarius
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.