質問: WordPressのプラグインを作ろうと考えております。 有料販売目的なのですがPHPの動作について考察をお教えください。 プラグインのPHP部分はGPLライセンスで良いのですが、有料なのに無料で再配布されてしまう懸念はずっと議論されてきていると思うのでこちらでその議論については言及しません。 そうではなく再配布されてもお支払頂いた方にだけ利用できるようにしたいと考えています。 そこで、他の有料プラグインがどのような仕組みでそれを解決しているのか知りたいです。 単に知りたいだけでは自分で何も発するものがないので私なりの仕組みを考えてみたのですがそれについてもアドバイスいただけますでしょうか? ちなみに前提として**サイトを作成するときに使うプラグイン**です。 ユーザーがサイトを閲覧するときには特に動作しません。 つまりサイト作成支援のプラグインです。 サイト作成者が**簡単な入力でうまい具合にページを生成する**という感じのプラグインを検討しています。 プラグインのアカウントはこちらが用意したサーバーで管理・アクティベーションする予定です。 ### 案1. 1. 購入者にアカウントキーを発行する 2. プラグインを通してWordPressにアカウントキーが保存される 3. アカウントキーをこちらが用意したサーバーに送信すると、プラグインのコアとなるソースコードをサーバーから受け取ることができる 4. そのソースコードをevalで実行する こうすることでWordPressのプラグインにコアとなるソースコードを保存することがないので再配布されても問題ないとの考えです。 ただし懸念事項としてeval関数は危険ということです。 それとそもそもソースを送信するとか危険そうです。 コードを暗号化したzipファイルにして送信し、WordPress側で解凍して使う、という方法も考えたりしています。 ### 案2. 1. 購入者にアカウントキーを発行する 2. プラグインを通してWordPressにアカウントキーが保存される 3. API形式でこちらが用意したサーバーにWordPressからデータを送信し、サーバーで変換されたデータをWordPressが受け取って処理する この場合、いちいちデータをサーバーに送信して処理させるという手間がかかるのでレスポンスが悪いという懸念があります。 それと作成中のソースをサーバーに送るというのもサイト作成者の心情的に、またセキュリティ的によろしくない気もします。 --- 上記の内容についてご意見を頂きたいと思います。 もしくはもっと良い方法があるなど、アドバイスをいただけたらと思います。 どうぞよろしくお願い致します!
回答: > > プラグインのPHP部分はGPLライセンスで良いのですが、有料なのに無料で再配布されてしまう懸念はずっと議論されてきていると思うのでこちらでその議論については言及しません。 > > > 申し訳ないのですが、案1のような形態ではGPLで配布することは**できません**。前提が崩れていますので、まず指摘しておきます。 「ソフトウェアをGPLで配布する」ということは、以下の権利を配布先、さらにその配布先...に保証することになります。 * ソフトウェアのソースコードを得る権利 * ソフトウェアを改造する権利 * 改造の有無にかかわらず、同じ条件でソフトウェアを再配布する権利 ということで、「サーバ認証した上で送られてくるプログラムがないと動作しない」のでは、ソースコードが入手できないということなので、GPLの受け手側の権利侵害となってしまいます。そして、サーバから送られるソースを公開してもGPLで認められた権利ということで問題ない、ということになります。 一方で、案2のように「他のサーバに接続するプログラム」の場合は、GPL上の問題は発生しません。 なお、その3として、「GPL以外の(プロプライエタリな)ライセンスを適用する」方法もあります。そうすれば、認証をやろうが再配布を制限しようが、自分のライセンス次第なのでなんでもできます。WordPress本体はGPLですが、GPLとプロプライエタリを組み合わせたプログラムは**再配布が不可能となる**だけで、実行する分には問題ありません。