web-dev-qa-db-ja.com

静的リンクを許可する変更されたLGPLライセンスはありますか?

[〜#〜] lgpl [〜#〜] は、プログラムがLGPLで編集されたライブラリを使用する場合、ユーザーがプログラムを別のバージョンのライブラリに再リンクできる必要があることを必要とします。

...

d)次のいずれかを実行します。

0)このライセンスの条件に基づく最小限の対応するソース、および対応するアプリケーションコードを適切な形式で、ユーザーがアプリケーションをリンクされたバージョンの変更されたバージョンと再結合または再リンクして、 GNU対応するソースを伝達するためのGPLのセクション6で指定された方法で変更された結合作業。

1)ライブラリとのリンクに適切な共有ライブラリメカニズムを使用します。適切なメカニズムは、(a)実行時にユーザーのコンピューターシステムに既に存在するライブラリのコピーを使用し、(b)リンクされたバージョンとインターフェイス互換性のあるライブラリの修正バージョンで適切に動作するメカニズムです。

...

ただし、場合によっては、これはかなりの困難をもたらすことがあります。特に、Haskellプログラムはほとんど常に静的にコンパイルされます。さらに、コンパイラーはモジュール間の最適化を行うため、コードの一部を取り出して別のコードで置き換えることはできません。したがって、この条件を満たすことは非常に困難です。 (Haskell Wikiの this link を参照してください。)

動的リンク が解決策ですが、多くの場合、これは不可能です。例えば:

  • 一部のプラットフォームでは、動的リンクがまったくない場合があります。
  • 一部の言語には、動的リンクの可能性がありません。または、モジュールをマルチプラットフォームにすることはできません。
  • 場合によっては、動的リンクによって重要な最適化が妨げられることがあります。これが深刻な問題になることはめったにありませんが、Haskellのような言語では、パフォーマンスの低下がかなりのものになる可能性があります。

したがって、私は再リンクの可能性を必要としない標準のLGPLのようなライセンスを探しています(そして、それはユーザーに与えられた少しの自由を取り除くことを理解しています)。 wxWidgets など、一部のプロジェクトは独自のLGPLの変更を使用します。しかし、私はどちらかと言えばより正式で、おそらく法律専門家によってチェックされ、(L)GPL互換の標準ライセンスを使用したいと思います。そのようなものはありますか?

(また、LGPLのそのような変更の予期しない結果があるかどうかを知りたいです。)

22
Petr Pudlák

誰もMozilla Public Licenseについて言及していないことに驚いています。静的リンクを許可することを除いて、LGPLに似ています。 MPLバージョン2はGPL/LGPLと互換性があります。

Mozilla Public License(MPL 2.0)vs Lesser GNU General Public License(LGPL 3.0)

13
bmaupin

wxwidgets は、基本的にライセンスされています= LGPL +静的リンク

...基本的にL-GPL(Library General Public Licence)。ただし、バイナリ形式の派生著作物はユーザー自身の条件で配布される可能性があることを除きます。これは、wxWidgetsを使用してGPL化されたソフトウェアを作成したい人や、独自のソフトウェアを作成している人を満足させるソリューションです。

wxWidgetsは認定オープンソースソフトウェアです。この決定につながったディスカッションの参加者には、 Abisource 、Robert Roebling、Julian Smart、Markus Fleck、Karsten Ballueder、Richard Stallmanからのアドバイスなどが含まれます。 Richardは、新しいライセンスがGPLされたアプリケーションと互換性があることを確認しました。ただし、プロプライエタリアプリケーションには大きな制限はありません。

WxWindowsライセンスは Open Source Initiative によって承認されており、ライセンスはサイト here ...で確認できます。

12
Martin Beckett

IANALは、LGPL以外のパーツにオブジェクトファイルを提供することで解決できると信じています。これにより、ユーザーはプログラムを再リンクできるため、LGPLの部分を自由に変更でき、LGPLの要件を満たします。

つまり、LGPLソースと非LGPLコードのコンパイル済みオブジェクトファイルを含むソースパッケージが必要です。明らかに、バイナリをリリースするすべての異なるアーキテクチャにオブジェクトファイルを提供する必要がありますが、これはそれほど問題ではないと思います。

開発の観点からは、配布用のバイナリをビルドするときに、ビルドシステムにソースパッケージも同時にビルドさせるのが最も簡単かもしれません。

4
hyde

Googleで見つけたもの: OpenScalesライセンス

OpenScalesは、GNU Lesser Public License(LGPL、利用可能 here ))のバージョン3でリリースされ、静的リンクの例外に関連する例外があります(以下を参照)...

LGPLライセンステキストに加えて、LGPL条件の例外がOpenScalesに適用されます。

GNU Lesser General Public License version 3の特別な例外として、静的または動的にこのライブラリの一部をリンクする結合された作品からの実行可能ファイルを実行可能なファイル。最小限の対応するソースを伝達しますが、GNU Lesser General Public Licenseのセクション4d0の下で対応するアプリケーションコードを伝達する必要はありません。ライブラリ。この例外は、実行可能ファイルがGNU Lesser General Public LicenseまたはGNU General Public Licenseでカバーされている場合があります。

それは標準ではありませんが、存在するかどうかはわかりません。

3
Minthos

どのようにしてユーザーの自由を保証し続けますか? 「正しい」答えは、ライブラリを動的にロードするシムを静的にリンクすることだと思います。

1
stonemetal