LGPL вимагає, щоб вона, якщо програма використовує бібліотеку, що редагується LGPL, користувачі повинні мати можливість знову пов’язати програму з іншою версією бібліотеки:
...
г) Виконайте одну з наступних дій:
0) Передайте Мінімальне відповідне джерело згідно з умовами цієї Ліцензії та відповідним кодом заявки у формі, придатній для та за умовами, що дозволяють користувачеві рекомбінувати або повторно зв’язати додаток із зміненою версією пов'язаної версії, щоб створити модифікована комбінована робота в порядку, визначеному розділом 6 GPL GPL для передачі відповідного джерела.
1) Використовуйте відповідний механізм спільної бібліотеки для зв’язку з Бібліотекою. Відповідним механізмом є той, який (a) використовує під час виконання копію Бібліотеки, яка вже є в комп'ютерній системі користувача, і (b) буде належним чином працювати з модифікованою версією Бібліотеки, сумісною з інтерфейсом з Пов'язаною версією.
...
Однак у деяких випадках це може становити значні труднощі. Зокрема, програми Haskell майже завжди статично складені. Більше того, компілятор робить міжмодульні оптимізації, тому неможливо вийняти частину коду та замінити його іншим. Тому дуже важко задовольнити цю умову. (Дивіться це посилання на Haskell Wiki.)
Динамічне зв’язування було б рішенням, але в багатьох випадках це неможливо. Наприклад:
- Деякі платформи можуть взагалі не мати динамічного зв’язку.
- Деякі мови не мають можливості динамічного зв’язку. Або неможливо зробити модулі багатоплатформенними.
- У деяких випадках динамічне зв’язування заважає важливим оптимізаціям. Хоча я б сказав, що це рідко є серйозною проблемою, але на таких мовах, як Haskell, втрата продуктивності може бути значною.
Тому я шукаю стандартну ліцензію, що нагадує LGPL, яка б не вимагала можливості повторного посилання (і я розумію, що це позбавляє користувачів трохи свободи). Деякі проекти використовують власну модифікацію LGPL, наприклад wxWidgets . Але я б скоріше скористався стандартною ліцензією, яка є дещо офіційною, можливо, перевірена експертами з правових питань та (L) GPL сумісною. Чи є щось подібне?
(Також мені було б цікаво дізнатися, чи є якісь непередбачені наслідки такої модифікації LGPL.)