Planuję opracować oprogramowanie komercyjne przy użyciu oprogramowania LGPL.
W oprogramowaniu LGPL, z którego korzystam, niektóre funkcje w klasie nie są w pełni zaimplementowane. Chcę zmodyfikować kod LGPL, aby klasa i niezaimplementowane funkcje były widoczne poza biblioteką dll przez dodanie dllexport przed klasą i przez dodanie wirtualnego słowa kluczowego przed funkcją.
Następnie planuję zaimplementować te funkcje w moim zastrzeżonym oprogramowaniu. Jestem gotów rozpowszechnić zmodyfikowany kod LGPL, ale nie zastrzeżone oprogramowanie, które implementuje funkcje tak, jak chcę.
Czy to narusza warunki LGPL?
Odpowiedzi:
To złożone pytanie, ale uważam, że to, co proponujesz, jest niedozwolone.
Sugerujesz dodanie haczyków do biblioteki, aby ułatwić ci podklasę biblioteki, a tym samym przynajmniej. ominąć ducha LGPL.
Problem polega na tym, że jeśli podklasujesz klasę, która podlega licencji LGPL we własnym kodzie, wówczas twoja praca staje się pracą opartą na bibliotece , a nie pracą korzystającą z biblioteki, co oznacza, że twój kod jest pochodną praca, która jest objęta sekcją 2 ( LGPL v2.1 ) zamiast pracy objętej sekcją 6 ( LGPL v2.1 ). To znaczy, że staje się przedmiotem licencji LGPL !
Myślę, że Stephen Colebourne stanowi dobre podsumowanie dotyczące javalobby.
Nie jestem wielkim fanem szarpanina rozmawiającego z twoimi sugestiami prawnika , ale w tym przypadku myślę, że warto to zrobić, jeśli planujesz to kontynuować, w przeciwnym razie możesz dostać paskudny list z Wolnego Oprogramowania Zespół prawny fundacji .
Alternatywnie możesz poprosić FSF bezpośrednio. Z ich strony kontaktowej :
Nawiasem mówiąc, w powiązanym zapytania Odbicie i LGPL , gbjbaanb odpowiedzi z LGPL 3,0 punktu widzenia .
źródło
Standard Nie jestem zrzeczeniem się prawnika.
LGPL wymaga modyfikacji kodu źródłowego biblioteki, aby był dystrybuowany do każdego, kto używał twojego kodu. To ma nie wymagać, że kod, który używa biblioteki, być otwartym pozyskiwane i wydany na tej samej licencji.
Wikipedia zawiera bardziej szczegółowy, ale nie prawnikowy opis LGPL, w tym rozdział dotyczący dziedziczenia klas .
źródło
„Chcę zmodyfikować kod LGPL ...” oznacza to wystarczająco dużo, że musisz zwolnić dowolny ze zmodyfikowanych kodów. Następnie rozszerzenie, czy rozszerzenie tego zmodyfikowanego kodu jest dziełem pochodnym jest sporne, a jeśli tak, to staje się przedmiotem licencji LGPL.
Wygląda na to, że próbujesz obejść licencję LGPL, której w tym przypadku nie możesz zrobić przy pomocy tych technik.
Ale jeśli próbujesz obejść LGPL, skontaktowałbym się z FSF zgodnie z zaleceniami Marka Bootha .
źródło
work based on
ponieważ wprowadzają zmiany w LGPL w celu ujawnienia wcześniej prywatnego kodu.Zgaduję: (ale IANAL) powinieneś zwolnić zmodyfikowaną bibliotekę jako open source jako kod LGPL, a następnie upuścić ją w programie komercyjnym. To powinno działać. W efekcie skończysz z widelcem biblioteki typu open source, a następnie sprzedasz za niego interfejs.
Ale, jak wielu innych słusznie powiedziało, zapytaj FSF : masz intrygujący scenariusz patologiczny; mogą zastanawiać się tak samo jak ty, czy ma to zastosowanie, czy nie. (lub przynajmniej zawracać sobie tym głowę na tyle, aby opublikować wpis FAQ na ten temat)
źródło
https://www.gnu.org/licenses/lgpl-java.html
Krótko mówiąc, nie ma problemu z dziedziczeniem, o ile nie zmienisz samego kodu biblioteki, ale nawet jeśli go zmienisz, musisz zwolnić tylko zmodyfikowany kod biblioteki, a nie kod aplikacji.
źródło