LGPL требует, чтобы в случае, если программа использует библиотеку LGPL, пользователи должны иметь возможность повторно связать программу с другой версией библиотеки:
...
г) Выполните одно из следующих действий:
0) Передать Минимальный Соответствующий Источник в соответствии с условиями настоящей Лицензии и Код Соответствующего Приложения в форме, подходящей и на условиях, которые позволяют пользователю рекомбинировать или связывать Приложение с модифицированной версией Связанной версии для создания модифицированная комбинированная работа, в порядке, указанном в разделе 6 GNU GPL для передачи соответствующего источника.
1) Используйте подходящий механизм разделяемой библиотеки для связи с библиотекой. Подходящим механизмом является тот, который (а) использует во время выполнения копию библиотеки, уже имеющейся в компьютерной системе пользователя, и (б) будет правильно работать с модифицированной версией библиотеки, совместимой по интерфейсу с связанной версией.
...
Однако в некоторых случаях это может представлять значительные трудности. В частности, программы на Haskell почти всегда статически компилируются. Более того, компилятор выполняет межмодульную оптимизацию, поэтому невозможно вынуть часть кода и заменить его другой. Поэтому очень сложно удовлетворить это условие. (Смотрите эту ссылку на Haskell Wiki.)
Динамическое связывание было бы решением, но во многих случаях это невозможно. Например:
- Некоторые платформы могут вообще не иметь динамического связывания.
- Некоторые языки не имеют возможности динамического связывания. Или невозможно сделать модули мультиплатформенными.
- В некоторых случаях динамическое связывание препятствует важной оптимизации. Хотя я бы сказал, что это редко является серьезной проблемой, в таких языках, как Haskell, потеря производительности может быть значительной.
Поэтому я ищу стандартную лицензию, подобную LGPL, которая не требует возможности повторного связывания (и я понимаю, что это лишает пользователей свободы). Некоторые проекты используют собственную модификацию LGPL, например, wxWidgets . Но я бы предпочел использовать некоторую стандартную лицензию, которая несколько более официальная, возможно, проверена некоторыми юристами, и (L) совместима с GPL. Есть ли что-то подобное?
(Также мне было бы интересно узнать, есть ли непредвиденные последствия такой модификации LGPL.)