LGPLでは、プログラムがLGPLで編集されたライブラリを使用する場合、ユーザーはプログラムを別のバージョンのライブラリと再リンクできる必要があります。
...
d)次のいずれかを実行します。
0)このライセンスの条件の下で最小限の対応するソース、および適切な形式で対応するアプリケーションコードを伝え、ユーザーがアプリケーションをリンクバージョンの修正バージョンと再結合または再リンクして、対応するソースを伝えるためにGNU GPLのセクション6で指定された方法で、変更された結合作業。
1)適切な共有ライブラリメカニズムを使用して、ライブラリとリンクします。適切なメカニズムは、(a)ユーザーのコンピューターシステムに既に存在するライブラリのコピーを実行時に使用し、(b)リンクバージョンとインターフェイス互換性のあるライブラリの修正バージョンで適切に動作するメカニズムです。
...
ただし、場合によっては、これによりかなりの困難が生じる可能性があります。特に、Haskellプログラムはほとんど常に静的にコンパイルされます。さらに、コンパイラはモジュール間の最適化を行うため、コードの一部を取り出して別のものに置き換えることはできません。したがって、この条件を満たすことは非常に困難です。(Haskell Wikiのこのリンクを参照してください。)
動的リンクが解決策になりますが、多くの場合、これは不可能です。例えば:
- プラットフォームによっては、動的リンクがまったくない場合があります。
- 一部の言語には、動的リンクの可能性がありません。または、モジュールをマルチプラットフォームにすることはできません。
- 場合によっては、動的リンクによって重要な最適化が妨げられます。これが深刻な問題になることはめったにないと思いますが、Haskellのような言語では、パフォーマンスの損失がかなり大きくなる可能性があります。
したがって、再リンクの可能性を必要としない標準のLGPLのようなライセンスを探しています(そして、それはユーザーに与えられた少しの自由を取り除くことを理解しています)。wxWidgetsなど、一部のプロジェクトではLGPLの独自の変更を使用しています。しかし、私はむしろ、いくつかの法律の専門家によってチェックされ、(L)GPLと互換性のある、より公式な標準ライセンスを使用したいと考えています。そのようなものはありますか?
(また、LGPLのそのような修正の予期しない結果があるかどうかを知りたいと思います。)