Lisansı değiştirmek için GPL kodunu yeniden yazma


23

Tam ihtiyacım olanı yapan bir GPL kütüphanesi (çift lisanslı değil) buldum. Ne yazık ki, kütüphanedeki GPL lisansı, kullandığım farklı bir kütüphanenin lisansıyla uyumlu değil. Bu nedenle GPL kitaplığını yeniden yazmaya karar verdim, böylece lisans değiştirilebilir.

Sorum şu: Lisansı değiştirebilmek için değişikliklerin kütüphaneye ne kadar yayılması gerekiyor? Başka bir deyişle, bunu yapmanın en ucuz yolu nedir?


3
GPL kitaplığının yazarına, size farklı bir lisans altında yayınlanması için ödeme yapılması daha ucuz olabilir.
quant_dev

3
En ucuz yolun ne olduğunu sormak yerine, neden bize tüm hikayeyi anlatmıyor ve "Yapılması gereken doğru olan ne?" Diye sormuyorsunuz.
John R. Strohm

4
Diğer kütüphane GPL ile uyumlu değilse, belki de değiştirmeniz gereken kütüphanedir.
Paul Butcher

1
Diğer kütüphanede hangi lisans var?
Andres F.

Yanıtlar:


34

Ben avukat değilim ama eğer GPLed kütüphane kodunu gördüyseniz AFAIK yazdığınız herhangi bir öykünme kütüphanesinin lekelemesine neden olur ve takdirine çok benziyorsa bir yargıç tarafından türetilmiş bir eser olarak ilan edilebilir.

Dolayısıyla süreç işlevsel bir özellik yazmak ve GPLed kodunu görmemiş birinin kütüphaneye yazmasını sağlamaktır.

Düzenleme: Sorunuzu formüle etme biçiminizle "Lisansı değiştirebilmek için değişikliklerin kütüphanede ne kadar kapsamlı olması gerekir?" Cevap AFAIK açıktır: ne yaparsanız yapın, sadece kütüphaneyi değiştirirseniz, ilk etapta değiştirmenizi sağlayan lisansın şartlarına uymalısınız.


3
Etiketleme konusu muhtemelen uygulamada çok ciddi bir endişe değildir. Ticari bir kuruluşun kodunu tersine mühendislik yaptığınız durumlarda, okuyucu ile uygulayıcı arasındaki güvenlik duvarı (esasen kaçınılmaz) ihlal davası için gereklidir, böylece kodun diğer versiyondan kopyalanmasının mümkün olmadığını gösterebilirsiniz. . Çoğu GPL kodu söz konusu olduğunda, kesinlikle kimsenin sizi dava etmeyeceğini ihlal etmediğiniz sürece , bunu yapmak istemedikleri için.
Mark Bessey

1
Kendi seçiminiz olan Rus ruleti beğenebilirsiniz. Herhangi bir nedenden ötürü - bir şekilde veya başka şekilde kodu miras alan bir yarışma veya sadece davayı finanse etmeye karar veren bir yarışma ise - dava açıp mahkum edilmiş olmanız, şirketinizi boğabilecek bir şey. Dava açılmasanız bile, kötü şöhreti bir sorun olabilir.
AProgrammer

2
Ben "lekeli" sorunun çoğunlukla NDA’lar için geçerli olduğunu düşünüyorum. Telif hakkı sorunları için, pek mantıklı gelmiyor. Telif hakkının aynı zamanda kitaplar, kağıtlar, filmler vb. İçin geçerli olduğunu göz önünde bulundurun. Bir gazete muhabiri radyoda bir şeyler duyarsa, bu aynı olayı yazmasını engeller mi?
user281377

6
Temiz oda yaklaşımı, telif hakkı yasasını ihlal etmediğinizi kanıtlamanın bir yoludur. Anladığım kadarıyla - ve yine bir avukat değilim - orijinal eserin bilgisi olmadan geliştirilen şeyler telif hakkını ihlal etmeyebilir (ancak patentleri ihlal edebilir). Bu bilgiyle geliştirilen şeyler telif hakkını ihlal edebilir veya etmeyebilir - benzerliklerin rastgele olaylardan veya bir yaklaşımı doğal yapan sorunun niteliğinden kaynaklandığını kanıtlamak daha zordur.
AProgrammer

1
@ammoQ: ABD'de, uzun bir süre önce bir şirketin her kod satırının yeniden yazılmasına rağmen ihlal edilmek zorunda kaldığı bir ihlal davası vardı (istatistiksel yazılım paketi?). Star Wars'un özellikle Star Trek'e benzemediğini ve bir gazete muhabirinin sadece radyoda duyduklarından bir hikaye yazmayacağına dikkat edin.
David Thornley

21

Bu problemi çözmenin genel yolu, öncelikle kütüphanenin sahibiyle iletişime geçip, size farklı bir lisans altında size bildireceklerini sormaktır.

GPL'nin uyumlu olmadığı açık kaynaklı bir proje üzerinde çalışıyorsanız, bunu yapma şansı yüksektir, bazı projeler en iyi seçenek gibi göründüğü için bir GPL lisansı alır.

Tabii ki, bu her iki kütüphaneye de uygulanır. İzin verilen lisans çift lisanslarını daha az izin verilen lisans altında almak sorun olmamalıdır.

Ticari bir ürünle çalışıyorsanız, birçok kütüphane yazarı, bunları uygun şekilde telafi ederseniz, size farklı bir lisans altında yayın verecektir.


8
Buna değer, ancak kütüphanenin sahibi GPLed'in katkılarını kabul etmiş veya kullanmışsa, bu pek çok kütüphane için geçerli değildir.
Brian,

^ Telif hakkını orijinal yazarlara geri atanan bir "katkıda bulunanın" sözleşmesi olmadıkça: softwareengineering.stackexchange.com/a/225577/93511
Jonathan

17

Anladığım kadarıyla, bir işe başlarsanız ve onu değiştirirseniz, değişiklikler ne kadar kapsamlı olursa olsun, nihai sonucun orijinalden türetilmiş bir çalışma olduğunu. Kütüphaneyi sıfırdan yazmanız gerekecektir. Kütüphaneyi sıfırdan yazarsanız ancak kodu gördüyseniz, o zaman çok benzerse, telif hakkı ihlali için tekrar dava açabilirsiniz.

Bu kurallar yazılıma özel değildir, her türlü telif hakkı olan şeyler için geçerlidir.

Ben avukat değilim ve bu yasal bir tavsiye değil. Ben de sizin yetki alanınızda değilsiniz ve internette sunulan yasal tavsiye konusunda her zaman şüpheli olmalısınız. Güvenilir yasal tavsiye almak istiyorsanız, bir avukat ödemeniz gerekir.


4

IANAL, ama ABD’de hiçbir değişiklik derecesinin türev olmayan bir çalışma yaratmayacağını biliyorum. Eski kütüphaneden kopyalanan herhangi bir kodu varsa veya Üniversite sınıfındaki intihal için başını belaya sokacak kadar içsel bir benzerliği varsa, o zaman yeni bir işin yakınında değilsin. Bazı işlev veya değişken adlarını değiştirmek hiçbir şey yapmaz, kaynakta kod parçalarını da hareket ettirmez. Bir şansa sahip olmak için bağımsız olarak yeniden oluşturmanız gerekecekti. IOWs, sadece sağladığı arayüzlere bakmanız ve bu işlevselliği nasıl sağlayacağınıza ve bir şansı olacak şekilde yeniden yaratmaya karar vermeniz gerekir. O zaman bile, birisi gerçekten umursar ve sinirlenirse, yine de ormandan çıkmamış olabilirsiniz.

Sonunda, en iyi tercihiniz kütüphanenin yazarı ile bağlantıya geçmek ve kütüphanenin daha izin verilen lisansı için bir düzenleme bulacağınızı ummaktır.


1

Burada önerilen her şey (çifte ehliyet istemek, yeniden yazmak) kabul edilebilir değilse, lütfen özel program / kütüphane ile dinamik bağlantının türev çalışma olarak kabul edilip edilmediğinin açık bir durum olmadığını unutmayın. FSF öyle olduğunu söylüyor, ancak birçok avukat (Lawrence Rosen dahil) bunu sorguladı.

Böylece, yazılımınızı GPLed kütüphanesine bağlayabilir, ardından yazılımın her kopyasıyla birlikte kaynak kodunun dağıtıldığından emin olun. Herhangi biri sizi dava ederse, bu zor ve bulanık GPL yönünü anlamalarının doğru olduğunu kanıtlamaları gerekir. Göründüğü gibi (örn. Galoob vs Nintendo), türevinin neyin işe yarayıp neyin işe yaramadığını kesin olarak bilemezsiniz.


veya en azından lib'in LGPL olup olmadığını da sorun.
Johan

2
Dinamik bağlantı meselesi zor bir konudur, ancak yolunuzu yöneten bir yargıca güvenmeyin. Hakim, Gnu lisansını kullanıyorsanız ve Gnu tanımlarını kabul etmenize hükmedebilir ve muhtemelen yazılım ürününüzü henüz gerçekleşmemiş bir davaya dayandırmak istemezsiniz.
David Thornley

1

Türetilmiş bir iş olmamasının tek yolu, orijinal kodu kullanmadan tüm kodu kendiniz yeniden yazmak olmanızdır. Bu muhtemelen mümkün değil.

GPL çevresinde daha kolay yollar var:

  • açık: servise sokun, bir soketten erişin. Soket GPL lisansı için bir sınırdır ( Affero yan tümcesinde rezil GPLv3 olmadığı sürece );
  • gri bölgede: dinamik olarak bağlayın. Dinamik bağlantı türetilmiş çalışmaya sınırlıdır ya da bununla sınırlı değilse, pek çok tartışma vardır. Burada birkaç bakış açısı . Bu aynı zamanda içinde bulunduğunuz bölgeye de bağlı olabilir.

Ayrıca, GPL’nin dağıtım lisansı olduğunu unutmayın, bu nedenle yalnızca ikili dosyaları üçüncü taraflara dağıttığınızda çalışmanızı lisanslamanız gerekir. Ve siz sadece onlara kaynak yayınlama zorunluluğuna sahipsiniz, ikilileri genel halka yayınlamadığınız sürece, genel kamuya açıklamak zorunda değilsiniz. Örneğin, kodunuzu yalnızca sunucularınızda kullanıyorsanız, herhangi bir kod yayınlama zorunluluğunuz yoktur. Mesela Google bunu ince ayarlı Linux çekirdeğiyle yapıyor.


Soketin bir bariyer olduğundan emin değilim. Avukatlarımıza göre, mühendisler teknik önlemlere fazla odaklanırken, küresel etki yasalarca kontrol edilen etkidir. Bir soket arayüzü yayınlamak ve emacs lisp'ta örnek bir kullanım vermek onlar için iyi oldu. Ancak programımızla birlikte otomatik olarak emac yükleme imkanı verilmesi de mümkün değildi. Dağıtım için haklısın. Ancak, dağıttığınız kişinin daha fazla dağıtılmasını engelleyemeyeceğinizi unutmayın.
AProgrammer

@APgramer: FSF bile, eğer ayrı bir süreçse, o zaman bunların ayrı programlar olduğunu söyler, bu nedenle iş türetmez. SSS eklentileri hakkında, ancak mantık hala geçerlidir: gnu.org/licenses/gpl-faq.html#NFUseGPLPlugins
vartec

Sorun plug-in ve plug-in hakkında doğası gereği vazgeçilmez değildir. Şirketime bir programın iki süreçte yapılandırılmasından bahsetmedim, biri GPLed çünkü GPLed kütüphanelerini diğeri kullanıyordu çünkü kaynağı gizli tutmak istiyoruz. Özellikle ikisi birlikte dağıtıldığında. Ama bu senin araman.
AProgrammer

1
@ A: diğer programlarla dağıtım "toplama" dır ve açıkça GPL tarafından izin verilir. Ve hayır, bu benim çağrım değil. Şahsen, 10 metre uzunluğunda sopa ile bile GPL kitaplığına dokunmam.
vartec

1

IANAL ve her halükarda, bu yasal olarak hiçbir şey ifade etmiyor, ancak Steven Levy'nin "Hackerlar" kitabında, bir noktada RMS'nin * nix kodunu gündüz ve gece aynı şekilde nasıl yazdığını anlattığını düşünüyorum. evdeki eşyaların ... GNU? 'nun bir parçası olabilmesi için bu Linux’tan önceydi. Ev kodunu günlük koddan farklı yapmak zorunda olduğuna inanıyorum, ancak temelde tam olarak önerdiğiniz şeyi yapıyordu.

Bu muhtemelen yasal olarak önemli değil, ama ... Apple ve / veya Microsoft'un izin / lisans veya başka bir şey alıp almadığından emin değilim, ama zil laboratuvarları Mac'ler için kullanılan masaüstü / ikon / fare arayüzünü icat etmedi. (veya Lisa?) daha sonra Microsoft tarafından kullanıldı.


Bu, Bell Laboratuarları değil, Xerox PARC olacaktır.
Marnen Laibow-Koser

Ve Jobs, Apple'ın Palo Alto'daki laboratuarı görmesine izin veren Xerox ile bir anlaşma yaptı. Xerox’taki hiç kimse o zaman bu teknolojiyi önemsemedi.
aledalgrande

0

Kendi yetki alanınızdaki bir yargıç önünde bir duruşma haricinde buna cevap yoktur. Ama riske atmak ister misin? Veya GPL kütüphanesini, testleri vb. Yeniden yazma çabasına gidin. Diğer kütüphanenin GPL ile uyumlu olmadığından emin misiniz? Her iki kütüphaneyi de GPL olmayan kütüphaneler terimleri altında dağıtmak istemediğiniz sürece, bu aslında alışılmadık bir durumdur.


Gnu'nun lisans listesini gnu.org/licenses/license-list.html adresinden edinebilirsiniz ve bunun GPL uyumlu ücretsiz lisanslara, GPL uyumlu olmayan ücretsiz lisanslara ve ücretsiz lisanslara bölündüğünü fark edeceksiniz. GPL'nin diğer lisansların sıklıkla uymadığı bazı özel gereksinimleri vardır ve GPLv3'ün amaçlarından biri uyumluluğu kolaylaştırmaktı.
David Thornley

0

Lisansı değiştirebilmek için değişikliklerin kütüphanede ne kadar kapsamlı olması gerekiyor?

Dünyanın birçok yerinde sıfırdan başlamalı, hiçbir şeyi kesmeden geçmemelisiniz. İşlevler / sınıflar / değişkenler vb. İçin yeni adlara ihtiyacınız vardır ve yapı farklı olmalıdır. O zaman güvendesin.

Öte yandan, eğer bir dif-alet benzerlik bulamazsa o zaman ...


2
Bir diff aracı benzerlik bulamazsa, yine de telif hakkı ihlali olabilir. Programlama yapmayan bir bakış açısıyla bakın: Bir kitap yazarım, İsveççe'ye çeviriyorsunuz ve ABD (ve muhtemelen İsveççe) telif hakkı yasasına göre türev bir çalışma yaptınız.
David Thornley

@David Thornley Evet, türev çalışmaları konusunda haklısınız.
Johan
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.