LGPL wymaga, aby, jeśli program korzysta z biblioteki LGPL, użytkownicy muszą mieć możliwość ponownego połączenia programu z inną wersją biblioteki:
...
d) Wykonaj jedną z następujących czynności:
0) Prześlij Minimalne odpowiednie źródło zgodnie z warunkami niniejszej Licencji i odpowiedniego kodu aplikacji w formie odpowiedniej dla i na warunkach, które pozwalają użytkownikowi zrekombinować lub ponownie połączyć Aplikację ze zmodyfikowaną wersją Wersji połączonej, aby utworzyć zmodyfikowana praca łączona, w sposób określony w sekcji 6 GNU GPL do przekazywania odpowiedniego źródła.
1) Użyj odpowiedniego mechanizmu biblioteki współdzielonej do łączenia się z biblioteką. Odpowiednim mechanizmem jest taki, który (a) używa w czasie wykonywania kopii Biblioteki już obecnej w systemie komputerowym użytkownika, i (b) działa poprawnie ze zmodyfikowaną wersją Biblioteki, która jest kompatybilna z interfejsem z Połączoną wersją.
...
Jednak w niektórych przypadkach może to powodować znaczne trudności. W szczególności programy Haskell są prawie zawsze kompilowane statycznie. Co więcej, kompilator dokonuje optymalizacji między modułami, więc nie jest możliwe wyjęcie części kodu i zastąpienie go innym. Tak więc bardzo trudno jest spełnić ten warunek. (Zobacz ten link na Wiki Haskell.)
Łączenie dynamiczne byłoby rozwiązaniem, ale w wielu przypadkach nie jest to możliwe. Na przykład:
- Niektóre platformy mogą w ogóle nie mieć dynamicznego linkowania.
- Niektóre języki nie mają możliwości dynamicznego łączenia. Lub nie można tworzyć modułów wieloplatformowych.
- W niektórych przypadkach dynamiczne łączenie uniemożliwiłoby ważne optymalizacje. Chociaż powiedziałbym, że rzadko stanowi to poważny problem, w językach takich jak Haskell utrata wydajności może być znaczna.
Dlatego szukam standardowej licencji podobnej do LGPL, która nie wymagałaby możliwości ponownego połączenia (i rozumiem, że to usuwa trochę swobody przyznanej użytkownikom). Niektóre projekty używają własnych modyfikacji LGPL, na przykład wxWidgets . Wolałbym jednak użyć standardowej licencji, która jest nieco bardziej oficjalna, być może sprawdzona przez niektórych ekspertów prawnych i (L) zgodna z GPL. Czy jest coś takiego?
(Chciałbym również wiedzieć, czy są jakieś nieprzewidziane konsekwencje takiej modyfikacji LGPL.)