Myślałem, że LGPL to licencja pobłażająca, podobnie jak MIT, BSD lub Apache. Ale dzisiaj czytam, że tylko linkowanie do LGPL (bibliotek itp.) Jest dozwolone z kodu o zamkniętym źródle - poza tym, że jest to copyleft - więc muszę opublikować kod oparty na programie LGPL.
Stworzyłem program dla mojego pracodawcy, który jest oparty na programie LGPL, ale ma znaczące modyfikacje. Oczywiście nie wolno mi udostępniać tego zmodyfikowanego kodu źródłowego. Jednocześnie muszę to zrobić, jeśli je rozpowszechnię (prawda?).
Zastanawiam się więc, czy istnieje obejście tego problemu, więc mogę zachować to zamknięte źródło (chciałbym móc opublikować to źródło) - jakieś sugestie?
Mój pomysł: czy mogę umieścić większość funkcji oryginalnej aplikacji LGPL w bibliotece zewnętrznej, napisać od podstaw podstawowy plik wykonywalny, ale odwołać się do biblioteki dla wszystkich funkcji, których nie zmodyfikowałem?
Obecnie wszystko znajduje się w pliku .jar (jest to Java / Swing). jeśli uważasz, że mój pomysł jest wykonalny pod względem prawnym / technicznym - ile wysiłku wymagałoby rozdzielenie tego, co napisałem i jaki jest oryginał? Nie jestem najbardziej obeznana z Javą.
Odpowiedzi:
Po pierwsze, skorzystanie z porady prawnej tutaj (jak w przypadku internetów) nie jest dobrym pomysłem.
Po drugie, i to tylko ja mówię, a nie prawnik, powinieneś pomyśleć o tym, zanim wziąłeś program LGPL i zmodyfikowałeś go dla swojego pracodawcy.
Jeśli licencja była czymś, co można zignorować tylko dlatego, że jej się nie podobało, nie byłoby sensu mieć jej teraz, prawda?
Jeśli ty i / lub twój pracodawca nie jest skłonny opublikować kodu źródłowego ze swoimi modyfikacjami, musisz przestać używać tego kodu LGPL i go pozbyć.
Znów to tylko ja mówię.
Uzyskaj porady od prawdziwego prawnika.
W odpowiedzi na pytanie dotyczące obchodzenia licencji poprzez dodanie kodu do biblioteki DLL, zakładam, że działałoby to w następujący sposób.
To, co byś zrobił, to wystarczy zmienić oryginalny program, aby mógł on wywoływać funkcje w bibliotekach zewnętrznych. Musiałbyś to zrobić bez dostosowywania tego fragmentu kodu do swoich potrzeb, bibliotek, nazw funkcji itp.
Zmiany, które następnie publikujesz, zgodnie z wymogami licencji.
Następnie tworzysz własną bibliotekę zewnętrzną z własnym, zastrzeżonym kodem i prosisz ten program, aby załadował i wykonał go, używając tych modyfikacji, które wprowadziłeś.
Nie znając pełnego zakresu licencji LGPL, nie mogę powiedzieć, czy to wystarczy, aby uniknąć konieczności publikowania biblioteki, ale podejrzewam, że tak będzie.
Jednak znowu ...
Uzyskaj porady od prawnika
źródło
Większość bibliotek otwartego oprogramowania opublikowanych na licencji LGPL lub porównywalnej licencji, przynajmniej tych, które są wystarczająco dobre do wykorzystania w twoich projektach, są zbudowane zgodnie z zasadą otwartego / zamkniętego: http://en.wikipedia.org/wiki/Open/closed_principle .
Powinieneś być w stanie refaktoryzować swój kod, aby twoja aplikacja była połączona z biblioteką LGPL, a wszystkie rozszerzenia były zawarte w twoim zamkniętym kodzie aplikacji.
źródło
To samo zastrzeżenie: IANAL.
Nikt do tej pory nie wspomniał o tym, że nawet jeśli rozdzielisz kod, nadal musisz rozdzielić kod źródłowy na części LGPL lub przynajmniej podać informacje o tym, gdzie można je pobrać.
Jedynym sposobem na obejście tego jest nie dystrybuowanie ich w pierwszej kolejności.
źródło
Nie sądzę, że potrzebujesz prawnika, aby zrozumieć, że próba obejścia licencji nie jest dobrą rzeczą. Wystarczy zdrowy rozsądek.
Zamiast tego możesz skontaktować się z oryginalnym autorem programu LGPL i poprosić / kupić o inną licencję prawną.
Jedynymi innymi alternatywami są zwolnienie źródła lub całkowite przepisanie go.
źródło
IANAL, TINLA itp.
Tak, LGPL wymaga, abyś udostępnił kod źródłowy każdemu, kto otrzyma kopię dzieła, lub musisz rozpowszechniać swoje dzieło w formie, w której odbiorcy oprogramowania mogą zastąpić twoją wersję dzieła LGPL nowym wersja. W obu przypadkach wszystkie modyfikacje części utworu LGPL muszą być dostępne dla wszystkich odbiorców dzieła.
Poprawny. Licencja wymaga, aby wszyscy odbiorcy oprogramowania mieli dostęp do kodu źródłowego.
Może to stanowić dzieło pochodne i nadal będziesz musiał rozpowszechniać wszystkie skrypty budowania usuwające program do biblioteki.
Java dodaje całą masę nowych problemów do LGPL, ponieważ nie jest jasne, co stanowi łączenie „statyczne” i „dynamiczne”. Ponieważ wyjątki LGPL w stosunku do GPL opierają się na tej koncepcji, w większości przypadków LGPL jest w rzeczywistości równoważna GPL. Będziesz musiał skonsultować się z zespołem prawnym firmy, aby odpowiedzieć na wszelkie pytania, które się pojawią.
Moja rada jest taka, że jeśli ktoś spoza Twojej firmy będzie miał dostęp do programu, usuń go i zacznij od nowa. Jeśli nie możesz spełnić wymagań licencji, w ogóle nie możesz jej rozpowszechniać.
Jeśli program będzie dostępny tylko w firmie, musisz jedynie udostępnić źródło pracownikom firmy. Sugeruję dodanie go do istniejącej kontroli źródła w Twojej firmie. Spełni to wymagania LGPL, o ile nikt poza firmą nie będzie miał dostępu.
źródło
możesz użyć wzorca adaptera i nie dotykać oryginalnego kodu. Również LGPL pozwala na dziedziczenie klas i zastępowanie funkcjonalności klas w swoim własnym projekcie.
źródło
Tak rozumiem, IANAL.
Sprawdź tekst wersji LGPL obejmującej używany kod. Uważam, że wymaganie jest takie, że każdy kod LGPL musi mieć możliwość wymiany - zwykle przy użyciu udostępnionego pliku biblioteki / jar. Jeśli możesz podzielić kod, którego używasz, czyli LGPL, na bibliotekę, możesz go zwolnić na licencji LGPL, jednocześnie uwalniając swoją aplikację na dowolnej licencji.
źródło
Nie możesz obejść licencji. Nawet jeśli znajdziesz lukę, jest to nadal nieetyczne (choć dla niektórych osób to inne pytanie). MOŻESZ zrobić, to skontaktować się z autorem tego oprogramowania, wyjaśnić sytuację i poprosić o osobną licencję. Jeśli jest skłonny udzielić specjalnej licencji za pewną cenę, możesz porównać to z kosztem przepisania oprogramowania bez korzystania z danego komponentu. I po prostu idź z tańszym.
źródło