メインコンテンツへスキップ

アプリ、libcurl、サードパーティ ライブラリのライセンスの混在

libcurl は、さまざまなサードパーティ ライブラリを使用するようにビルドできます。これらのライブラリは他の当事者によって作成および提供され、 それぞれ独自のライセンスで配布されています。libcurl 自体にも、一部の人にとって問題となる可能性のあるコードが含まれています。このドキュメントでは、libcurl および その他のライブラリが使用するライセンスと、それらすべてをリンクおよび混在させることによってエンド ユーザーに生じる可能性のあるジレンマについて説明します。 私は弁護士ではなく、これは法的助言ではありません。 よくあるジレンマの 1 つは、GPL[1] ライセンスのコードを、Original BSD ライセンス (宣伝条項付き) のコードとリンクすることが許可されていないことです。それらすべてを使用する独自のコピーをビルドすることはできますが、それらをバイナリとして配布すると、ライセンスに例外[2] を付けない限り GPL ライセンスに違反することになります。この特定の問題は、 GPL と衝突する宣伝条項を持たない Modified BSD ライセンスが作成されたときに解決されました。 libcurl 可能な限り寛容な MIT (または Modified BSD) スタイルのライセンスを使用しています。 OpenSSL (SSL/TLS のサポートに使用される場合があります) 宣伝条項付きの Original BSD スタイルのライセンスを使用しており、GPL とは “互換性がありません”。GPL コードを含む、OpenSSL とリンクするバイナリを出荷することは許可されていません (その特定の GPL コードに OpenSSL の例外が含まれている場合を除きます。これはますます一般的になりつつある慣習です)。OpenSSL のライセンスが問題になる場合は、別の TLS ライブラリの使用を検討してください。 GnuTLS (SSL/TLS のサポートに使用される場合があります) LGPL[3] ライセンスを使用しています。これが問題になる場合は、別の TLS ライブラリの使用を検討してください。また、GnuTLS 自体が他のライブラリ (libgcrypt と libgpg-error) に依存してそれらを使用しており、それらも LGPL または GPL ライセンスであることに注意してください。 WolfSSL (SSL/TLS のサポートに使用される場合があります) GPL[1] ライセンスまたはプロプライエタリ ライセンスを使用しています。これが問題になる場合は、別の TLS ライブラリの使用を検討してください。 NSS (SSL/TLS のサポートに使用される場合があります) MPL[4] ライセンス、GPL[1] ライセンス、および LGPL[3] ライセンスの対象です。コードのライセンスとして、MPL、GPL、または LGPL の条項を選択できます。これらのライセンスは、それぞれ異なる許可を付与し、異なる義務を課します。ニーズに最も適したライセンスを選択してください。 axTLS (SSL/TLS のサポートに使用される場合があります) Modified BSD スタイルのライセンスを使用しています。 mbedTLS (SSL/TLS のサポートに使用される場合があります) GPL[1] ライセンスまたはプロプライエタリ ライセンスを使用しています。これが問題になる場合は、別の TLS ライブラリの使用を検討してください。 BoringSSL (SSL/TLS のサポートに使用される場合があります) OpenSSL のフォークであるため、OpenSSL と同じライセンスです。 libressl (SSL/TLS のサポートに使用される場合があります) OpenSSL のフォークであるため、OpenSSL と同じライセンスです。 <!—c-ares (非同期の名前解決に使用されます) 非常に寛容な MIT ライセンスを使用しており、リンクする可能性のある他のライブラリや部分に制限を課しません。—> zlib (圧縮された Transfer-Encoding のサポートに使用されます) 他のライブラリと衝突しないはずの MIT スタイルのライセンスを使用しています。 MIT Kerberos (GSS のサポートに使用される場合があります) MIT ライセンスであり、他の部分と衝突しないはずです。 Heimdal (GSS のサポートに使用される場合があります) Heimdal は宣伝条項付きの Original BSD ライセンスです。 GNU GSS (GSS のサポートに使用される場合があります) GNU GSS は GPL ライセンスです。Original BSD ライセンスのライブラリにもリンクしてそれらを使用するように curl をビルドする場合、これを使用するバイナリの curl パッケージを配布できないことに注意してください。 libidn (IDNA のサポートに使用されます) GNU Lesser General Public License [3] を使用しています。LGPL は、“コピーレフト” がやや緩やかな GPL の派生ライセンスです。このライセンスでは、バイナリを配布する際に満たす必要がある要件が多くなります。詳細についてはライセンスを参照してください。また、このライブラリを含むバイナリを配布する場合は、LGPL ライセンスの全文も含める必要があることに注意してください。配布するパッケージのどの部分がライセンスの対象であるかを適切に示してください。 OpenLDAP (LDAP のサポートに使用されます) Modified BSD スタイルのライセンスを使用しています。libcurl は OpenLDAP を共有ライブラリとしてのみ使用するため、アプリで libcurl とリンクされた OpenLDAP を出荷している人がいるという話は聞いたことがありません。 libssh2 (scp と sftp のサポートに使用されます) libssh2 は Modified BSD スタイルのライセンスを使用しています。 [1] = GPL - GNU General Public License: https://www.gnu.org/licenses/gpl.html
[2] = https://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs GPL の例外の記述に関する詳細。
[3] = LGPL - GNU Lesser General Public License: https://www.gnu.org/licenses/lgpl.html
[4] = MPL - Mozilla Public License: https://www.mozilla.org/MPL/
最終更新日 2026年10月20日