IPhoneアプリを作成していますが、その機能の一部にサードパーティライブラリを使用したいと考えています。私はそれをApp Storeから販売するつもりであり、私のコードはオープンソース化されません。デリバティブを機能させ、アップル独自の条件下でそれらを公開することを許可するオープンソースライセンスはどれですか?
Short/TL; DR:
LGPLとアプリケーションストアにはいくつかの非互換性があります。つまり、DG対応のAppStoreまたはロックされたデバイスでLGPLコードを配布する権利がありません。
Apache 2ライセンス、Microsoft Public License、またはMIT X11 License)のような他の緩いライセンスの下でライブラリの代替実装を探すのが最善です。
より長いです:
LGPLは次のように述べています。
この要件は、通常はオペレーティングシステムに付属しない他の専用ライブラリのライセンス制限と矛盾する場合があります。このような矛盾は、配布する実行可能ファイルでそれらとライブラリの両方を一緒に使用できないことを意味します。
LGPLコードとプロプライエタリコードを静的にリンクする権利は、LGPLのセクション6にあります。付与された権利に加えて、そのセクションでは、コードのダウンストリーム受信者に対するユーザー側の要件を扱います。
このセクションを詳しく読んでください。
ユーザーがプログラムに参加し、キー証明書、プロビジョニングプロファイル、およびデバイスに展開するツールを取得するために支払うことを要求するアプリケーションストアは、LGPLと直接矛盾します。
LGPLでは、エンドユーザーがオブジェクトファイルとオープンソースライブラリ(およびツール、以下のセクションを参照)をフェッチし、機能するコードを生成できる必要があります。ダウンストリームの受信者が、自分のハードウェアにコードの作業バージョンを展開できるようにするために、Apple、Microsoft、Amazon、またはGoogleと個別の契約を結ぶ必要がある余地はありません。
特にこのセクションは関連しています:
ここで付与された権利の受領者の行使に、さらなる制限を課すことはできません。お客様は、第三者による本ライセンスの遵守を実施する責任を負いません。
AppStoreでアプリケーションを再公開する権利をユーザーに与える必要はありませんが、ユーザーのデバイスにLGPLコードの変更されたバージョンを使用してアプリをデプロイする権利を与える必要があるため、必要な開発者プログラムまたはデバイス展開する追加の支払いはLGPLと矛盾します。
結果の実行可能ファイルの条件により、受信者がLGPLコードに変更を加えて、そこから新しい作業用コードを生成できるようにする必要があります。これは実際には、プログラムのオブジェクトファイルを配布して、サードパーティがアプリケーションを修正版のライブラリに再リンクできるようにする必要があることを意味します。バグの修正、何らかの方法での改善、または独自の機能の提供が可能です。
Webサイトにオブジェクトファイルを投稿し、サードパーティがアプリケーションを再リンクできるようにプロジェクトを提供することで、これを回避できます。そうしないと、LGPLのライセンスが取り消されます。
これは、セクション6のもう1つの要件です。
これは、さまざまなアプリケーションストアの条件と直接競合する可能性がありますが、使用しているアプリケーションストア(Apple、Amazon、Androidまたはその他のサードパーティ)で正確な条件を確認する必要があります。
LGPLコードの要件の一部として、ダウンストリームユーザーに出荷されるアプリケーションは、LGPLライセンスとともに出荷され、著作権情報を表示するアプリケーションの任意の場所でこのライセンスをポイントする必要があります。一部のアプリケーションストアはこれをアプリケーションストアサイトに投稿しますが、他のアプリケーションストアは実行可能ファイル自体の著作権情報を持っている場合があります。
これは非常に簡単に遵守できます。LGPLコードのコピーをWebサイトに配布するだけです(これについては、コードを使用可能にしておく必要のある期間について、ライセンスに追加の詳細情報があります)。
LGPLの主な問題の1つであり、アプリケーションストアを通じて配布されるアプリケーションで静的ライブラリを使用することは、エンドユーザーがソフトウェアを再構築するために必要なツールとスクリプトを配布する必要があることです。
一部の組み込みシステムシナリオでは、組み込みシステムベンダーに開発者ツールとAPIをエンドユーザーに開示するよう要求することがあり、これは不可能である可能性があります。この場合の義務を果たすためにiPhoneやWindows SDKのようなものを自由に再配布できるかどうかは明確ではありません。弁護士と話し合って、要件を公開することにどれだけ慣れているのかを確認した方がよいでしょう。
アプリストアや組み込みシステムでLGPLコードを絶対に使用する必要がある場合は、いつでもコードの元の作成者に連絡して、さまざまな条件でコードのライセンスを付与するよう依頼することができます。
または、Apache 2ライセンス、Microsoftパブリックライセンス、またはMIT X11ライセンス)のような他の緩いライセンスでライブラリの代替実装を探すことができます。
LGPLに関しては、St3fanは正しくないと思いますが、Louis Gerbargは正しいです。クローズドソースのiPhoneアプリでLGPLライブラリを使用することは可能ですが、制限があります。
http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License を参照すると、「ソースコードまたはリンク可能なオブジェクトファイルが提供されている場合は、静的にリンクされたライブラリが許可されます。 」
したがって、Luis Gerbargが述べたように、LGPLライブラリを使用する場合、顧客がアプリケーションを取得するために必要なオブジェクト(* .oなど)ファイルを自由に利用できる限り、アプリケーションをクローズドソースのままにしておくことができます。リンクします。
ここではiPhoneとLGPLの互換性 のテーマについて詳しく説明します。
ライブラリのLGPLライセンスによって課されるアプリの詳細な要件:
d)次のいずれかを実行します。
0)このライセンスの条件に基づく最小限の対応するソース、および対応するアプリケーションコードを適切な形式で、ユーザーがアプリケーションをリンクされたバージョンの変更されたバージョンと再結合または再リンクして、 GNU対応するソースを伝達するためのGPLのセクション6で指定された方法で、変更された結合作業。
LGPLがiPhoneアプリケーションでは機能しないと思います。
問題は、iPhoneランタイムでは共有ライブラリ(またはフレームワーク)をアプリにバンドルできないことです。単一のバイナリアプリケーションのみが許可されます。 LGPLは、共有ライブラリをアプリケーションにバンドルするという前提に基づいています。直接リンクはまだ禁止されています。
Apple App Storeは、GPLとLGPLの両方のすべてのバージョン、およびAffero GPLに存在するFSFのコピーレフトのアイデアと互換性がありません。Apple App Storeでは、ユーザーがフリーソフトウェアを取得して変更し、自分のデバイスで自由に実行することはできません。DRMの使用、年間100ドルの支払い、追加条件への同意などが必要です。かなり良い記事がありますこれのここ: http://michelf.com/weblog/2011/gpl-ios-app-store/
App Store以外でiOS用のGPL/LGPLソフトウェアを配布することは完全に合法です。問題はApple App Storeにあります。したがって、ロビー活動を推奨しますApple Mac OS XとiOSは基本的にGPL/LGPLソフトウェア(gccなど)にも依存しているため、Appleは自由を享受していますが、ユーザーに同じ自由を否定しています。 。
App Storeと互換性のあるライセンスについては、BSD、MIT、Apache、パブリックドメインなどの非常に寛容なライセンスを使用する必要があります。
これは法的な助言ではありません。私は弁護士ではありませんが、BSDまたはApacheライセンスのライブラリが必要なようです。これは、オープンソースライブラリを使用する専用のデスクトッププログラムを開発している場合に当てはまります。 AppleにiPhoneアプリに対してさらに制限があるかどうかはわかりません。
(私は弁護士ではありません。)
静的オブジェクトファイルリンクは、LGPLライセンスコードを使用するアプリを、ソースコードのLGPL以外の部分を配布せずに利用可能にする方法の問題に対処する場合があります。
しかし、LGPLはGPLのバリエーションとして、iPhoneアプリの開発に大きな克服できない問題を課しているようです。iPhoneアプリの作成と配布に必要な開発ツールは、Appleつまり、GPLと互換性がありません。つまり、年間100ドルの料金が発生し、GPLライセンスの一部ではないツールの使用には多くの契約条件があります。AppleのiPhone開発者ツールのライセンスの条件は、 GPLの精神およびおそらくGPLの書簡とも互換性がない。
良い例がWunderradioです。彼らはffmpegおよびその他のLGPLv2ライセンスフレームワークを使用し、.oファイルをWebサイトで提供しています。
奇妙なことに、彼らはアプリの完全なソースコードも提供しています。
iPhoneにFuegoを移植する を試そうとすると、- fuegoメーリングリスト で同様の質問をしました。これまでのところ、私の理解は「LGPLはAppStoreと互換性がない」です。以前の question も回答を受け取ります:いいえ。
ソースコードをリリースしない場合は、厳格なコピーレフトライセンスを使用できません。 iPhoneの配布はno-Tivoization句と競合するため、いかなる場合でもGPLv3ベースのライセンスを使用することはできません。
LGPLv2を使用している場合、リンク可能な形式でプログラムを提供する必要があります。これは、受け入れられる場合と受け入れられない場合があります(少なくともソースコードではありません)。これは、処理したくないものである可能性があります。 、ライブラリが多くの利益を提供しない限り。
ライブラリに1人の著作権所有者がいる場合は、ライセンス例外を取得できるかどうかを常に確認できます。
典型的なBSD/MIT/Boost /どのような寛容なライセンスでも問題はありません。オープンソース/フリーソフトウェアのライセンスはたくさんありますが、残りについては、それらを読んで確認する必要があります。
App Storeの利用規約に問題があると主張している人々、特に年間$ 100 Apple開発プログラム料金)は間違っています。その$ 100は、ショートッパーにさえ近いものではありません。開発者はこれらの種類のことについて心配するのに多くの時間を費やしている; 0)弁護士は何千年も契約条項にこだわっており、これらは眠りを失う価値はほとんどない。
前提条件:アプリのリンクを介してアクセスできるWebの場所からオブジェクトファイルと基本的なプロジェクトファイルを提供します。
オプション1、カウボーイの場合:脱獄は公式に合法です(無料)。それだけで、LGPLとApp Storeの用語間の互換性に関する懸念はなくなります。 LPGLは特定の配布チャネルをどこに指定しますか?どこにも。アプリストアからダウンロードしたアプリの静的にリンクされたライブラリをアップグレードしますか?それを吸い、アルファ開発とあなたの電話を脱獄します! Appleが遊び場でのいじめっ子であるからといって、メリーゴーランドに留まることを強制されるわけではありません。これにより、進取的な開発者は、次の会合で貴重な自慢の権利を受け取ることができます。さらに、あなたがLPGLライブラリをアップグレードするために携帯電話をジェイルブレイクすると、リチャードストールマンの地下にある樽の部屋にアクセスできます。
法的かつ誠実に回避するためのオプション2:LGPL v2.1のセクション1(およびGPL v3のセクション4)では、開発者がライブラリをコピーする物理的な行為に対して料金を請求できます。これにより、開発者はその料金を$ 99 Apple Devサブスクリプション料金に割り当てます。
100デバイスの制限はどうですか?バイナリのアップグレードを希望するエンドユーザーは商用アプリケーションをアップグレードしているため、アプリ開発者自身のライセンス条項が適用されます。カスタムライセンス契約に100デバイスの制限を追加するのは簡単です。 100台を超えるiOSデバイスを所有している人は何人ですか?ジョブズでさえそれほど多くはありませんでした!それは不合理な制限ではありません。エンドユーザーが元の商用アプリの独自の変更バージョンをリリースすることを許可する必要がないことを考えると、修飾子の101番目の友人のデバイスにロードできなかった場合の苦情の根拠はありません。
LGPLには、エンドユーザーが快適でリスクのない、または明らかな選択さえもしなければならないという要件はありません。彼らはただ選択肢を持っている必要があり、2つの完全に良いものがあります。