【クオッカでもわかる】ワードプレスのGPLライセンス。アクセス解析ツールならQA【クオッカでもわかる】ワードプレスのGPLライセンス。有料テーマ、自作プラグイン販売時の考え方TOP開発者ブログ【クオッカでもわかる】ワードプレスのGPLライセンス。自作テーマやプラグインを公開、販売したい方は、ワードプレスの正式なライセンス(GPLライセンス)をちゃんと知りたいと思います。いえ、なかなかまとまった知識を体系立てて知ることは難しいかも知れません。そんな時、素晴らしい書籍に出逢いました。まえがきの結びはこのようになっています。OSSはソフトウェア開発に直接あるいは間接的に携わる人たちだけの問題ではありません。私たち全員の問題でもあり、OSSに対する理解は多くの人に求められます。ソフトウェア開発実務に携わる多くの人にOSSについて知っていただけるよう願っています。OSなど、広く私たちの生活を支えているものです。私も読んでみて、その主旨に同意しましたので、特にワードプレスに焦点をあてて、わかりやすくまとめておきたいと思います。私は法律の専門家ではありませんので、間違った理解をしてしまっているかも知れません。その場合はご指摘頂ければ幸いです。詳しく知りたい方は、ぜひ書籍を手に取ってもらいたいと思います。ちなみにタイトルのクオッカはこれ↓。世界一幸せな動物といわれるクオッカワラビー。QuarkAのマスコットキャラ。URI」を記載しない場合はLICENSE.txtを作成する有料ライセンスはどのように販売している?【結論】プラグインもreadme.txtを同梱して配布するソースコードの管理はGitHub?SVN?どこで行うべき?WordPress公式ディレクトリが採用するSVNとは?JSやCSSなどのminifyはしてもよいの?ユーザーからのフィードバックはどのように受け付けるべき?WordPress.ORGの公式ディレクトリのフィードバック機能を使うソース公開方法のまとめ最後に。Version2というライセンスを採用しているフリーソフトウェアです。このGPLはフリーソフトウェア財団(FSF)という団体が公開、維持しています。フリーソフトウェア財団(FSF)を支えるのは「非フリーなソフトウェアは非道徳的である」という思想です。ソフトウェアは自由で共有可能で、社会の発展により役立つものであるべきだという考え方ですね。従って、WordPressもGPLのポリシーにのっとり、誰でも改変可能なものとして無料で領布されることになりました。その結果、多くの人が関わり、共有され、今でも発展を続けています。GPLについて誤解されていることの一つは「全て無料であること」を求めてはいないということです。フリーソフトウェア財団は「ソースコードを自由にしよう(改変可能にして共有しよう)」といっています。それが最も重要で、むしろ保守サービスなどは求める人がいるならば対価をとってよい(ソースコードとサービスはわけられるべき)と公式サイトに記載しています(※2)。このことがテーマやプラグイン販売には重要ですが、詳しくは後述します。GNU宣言GPLライセンスって何?GPLライセンスは、前述の通り、フリーソフトウェア財団(FSF)が公開しているライセンス体系です。公式版はこちらにあります。GPLライセンスというのは、日本語としておかしいのですが、わかりやすくする便宜上、両方を使わせてもらっています。Unix”の略で、そこからFSFの創始者リチャード・ストールマンのストーリーが始まるのですが、本題とずれますので詳細は割愛します。詳しく知りたい方は上記GNU.orgの内容を読んでみると面白いと思います。WordPressが採用しているGPLはVersion2さて、GPLには1から3までのバージョンがあります。長い歴史の中で、改善されてきているのです。WordPressが採用しているのはVersion2です。GPLv2と記載されますので、以後そのようにも記載します。v2のvはVersionの頭文字です。こちらに原文があります。Version2は原文ままを採用することが求められており、WordPressの公式サイトにも同じものが掲載されています。–GPLは「ソフトウェア利用許諾」です。WordPressの著作者が我々ユーザーに提示する利用条件です。重要な箇所を5つお伝えすると下記になります。自分で改変して自分で使っている分にはまったく関係ありません。GPLライセンス文言を原文ママで読める形で提供することソースコードの開示をすることソースコードの入手方法を明記すること領布した相手に対して、ソースコードの開示は3年間は行う事GPL以外に条件はつけてはならない改めて見て貰うとわかるのですが、やはり「テーマやプラグインを手に入れた利用者がソースコードを自由に改変、再配布できるようにする」のがGPLです。WordPressがGPLv2を採用している以上、私たちはこの利用条件を守る必要があります。later)という表記をしています。Licenseこれはどういう意味かというと、WordPress自体はGPLv2だけど、その後のあなたたちはGPLv3を採用してもいいよ、ということです。GPLv2でも構いません。GPLv3とは?Version3はVersion2で出てきた問題(Tivo化など)について、より立場を明確にしています。DRMや特許関連に大きな違いがみられます。Version3の主な改訂あるOSSが他者の特許を偶然侵害していた時。その他者がある特定のOSSベンダーだけを対象外として優遇することを阻止(差別的特許の禁止)テーマやプラグインに含有される特許ライセンスを無料付与する家庭用に使用される機器向けのOSSの場合、再インストール方法を明示する(※テーマやプラグインは関係なし)GPLv3はGPLv2とは矛盾するのですが、Apache2.0ライセンスなどと矛盾しないため、ソフトウェアの自由を求める人にとって、より利用しやすくなっています。たくさんのフリーソフトを使っていた場合、その各ライセンス間に矛盾が生じると、判断に悩むケースが出てきます。あなたのテーマやプラグインがApache2.0ライセンスを適用したフリーソフトを活用する場合、GPLv3を採択するのもよいでしょう。GPLv3のクイックガイドが公式サイトに掲載されています。そもそもライセンスって何?GPLについて考えてきた最後に、ソフトウェアのライセンスとは何かを考えてみます。結論からいうとライセンスは「利用許諾」です。「この条件で使っていいよ」とユーザーに許可を出すことですね。WordPressは「GPLv2の条件で自由に使っていいよ」と私たちに許可を出しているわけです。そもそもソフトウェアが広く一般的に主張できる権利は知的財産権です。著作権と特許権の二種類があります。著作権ほとんどがこの権利の話題になりますが、ソフトウェアは、著作権が主張できます。写真の著作権などと一緒で、勝手にその内容をコピーしたり改変して販売した場合は、本来は著作権侵害です。なるとGPLの「自由にソースコードを改変できる権利」と矛盾します。そこで、GPLでは、GPLで領布されたソフトウェアを活用して作成されたソフトウェアは、同じくGPLで配布することを求めます。「著作権を主張せず自由な利用許諾を与える。これが自作テーマやプラグインにも適用されるのですが、詳しくは後述します。特許権は著作権と違い、自然には発生しません。「画期的なアイディアを実現する仕組み」を思いついた著作者が、特許庁に申請して受理されると特許が成立し、特許権を獲得できます。ドクター中松さんが大金持ちになったのもこの特許の力が大きく、誰かが特許を使用するには一般的に特許権者にライセンス料(利用料金)を支払う必要があります。これも、もし認めてしまうと「GPLで配布されていたプログラムを自由に改変して使っていたら、後から特許侵害で世界中のユーザーが一斉告訴された」という事態にもなりかねません。WordPressが急に「お前ら全員、特許侵害だ!」といってきたら困りますよね。いうことで、GPLはやはり特許についても主張しないことを求めています。GPLは「ユーザーに自由」を提供し続けるライセンスである今までみてきたように、テーマやプラグインを作成する我々は、著作権や、申請していれば特許権を保持しています。その権利を主張してしまうと、ソースコードを手に入れたユーザーの自由は奪われ、訴訟されるリスクを抱えてしまいます。罠を仕掛ける人すらいるでしょう。WordPressが採択しているGPLはそのような自体を避けるための利用許諾です。WordPress上で動くテーマやプラグインは、WordPressを利用する必要があるためGPLv2の利用条件を守る必要があります。later)を採用することを義務づけています。私たちのテーマやプラグインがGPLを採用する以上、それを手に入れた人もまた、そのソースコードを配布する場合には、同じくGPLを採用する必要があるのです。この連鎖により、不必要な権利の主張を避け、未来のユーザーの自由を確保するのがGPLだと言えます。テーマやプラグインのライセンスはどうすべき?ここが最も大切な部分ですが、WordPress上で自作テーマやプラグインを作って配布する場合、どのようなライセンスが望ましいのでしょうか?これにはGPLを管理しているフリーソフトウェア財団(FSF)の見解を読むのがもっとも良いと思います。彼らの見解をWordPressにあわせて読んでみると以下のようになります。最終的には裁判官が決めるWordPressがないと動かないテーマやプラグインはWordPressと結合されていると考えられるので、GPLを適用しなくてはならない逆に結合されていない独立部分にGPL適用の義務はない。later)を適用しなくてはなりません。領布時のライセンスとして、GPLv2の原文(英語)をユーザーに提示する必要があります。上記の見解は基本的にWordPress.ORGの公式サイトでも同様です(※3)。一方で、それとは関係なく動くプログラムの著作権と利用許諾権は自由に決めることができます。Typeでも動きますのでGPL適用の義務はありません。too(テーマもGPLです)特許はどうなる?もし自社の特許が、自作テーマや自作プラグインのソースコードに完全に含まれる場合。GPLv3にした場合は、その特許の利用権を無料で利用者に渡すことが求められます。GPLv2においても、GPLの文言以外に利用条件をつけてはいけないので、自動的に特許使用許諾を付与することになります。そのソースコードを、どこかのベンダーが再利用して、あなたの特許を含有した新しいプロダクトを作った場合はどうなるでしょうか?もちろん、その場合も基本的に特許侵害とはなりません。利用権はそのベンダーにもあるからです。そのベンダー自身もまた、その利用権を保持(つまり特許侵害で訴えられない)するためには、そのプロダクトをGPLライセンスで領布することが求められます。GPLは独占を嫌い、すべての人に自由を求めているのです。その特許を構成するためにWordPress以外の要素が必要だったとします。ユーザーと結ぶなどの対応が考えられます。GPL対象外となる可能性が高いです。GPLの精神とあわせて考えると、自由に使えると想定して手に入れたコードに別途利用規約が必要なものは、そもそも無料配布を行うのではなく有償サービスとして双方合意のもと利用許諾をする方が双方の理にかなっているかも知れません。later)対応は必須ですが、その形態として100%GPL、もしくはスプリットライセンスかの二択があります。GPL」とは簡単にまとめると下記です。スプリットライセンス・・・PHPだけGPLで領布するもの。※4)で領布するものどちらを選択しても法的には問題がありません。スプリットライセンスを選択した場合は、コミュニティの活動に制限がでます。逆に100%GPLを選択した場合は、WordPress公式ディレクトリにテーマやプラグインを掲載することができます。スピーカー・運営者・スポンサーとして参加する個人または企業も、100%GPLであることが必須条件となります。later)でリリースされています。そのGPLには「ソースコードは自由に改変可能にし、社会に貢献すべき」というフリーソフトウェア財団(FSF)の思想が反映されています。GPLはその利用者に同じくGPLを採択することを強います。later)で配布する必要があります。「ソースコードは改変可能」にし、再配布も自由に許可する必要があります。この事象は、ネガティブに捉えるより、崇高な思想にのっとり、そうすべきだともいえます。そのおかげでWordPressに関わる多くの人が恩恵をうけれているからです。サービスや拡張プログラムを販売するという考え方をするこれも前述しましたがFSFの精神は「なんでも無料にすべき」ではありません。「ソフトウェアのソースを無益に独占するのがよくない」と言っています。最初はフリーの定義が曖昧だったようですが、現在のフリーは「自由」の意味合いが強いのです。従って、ソースコードの販売は許可されていますし、保守サービスを有償提供することも許可されています。有償サービスを考える方は、ソースコードはオープンにし、基本的に「サービス」に対して対価を払って貰うのがよいです。ソースコードをオープンにすることで、ユーザーがよりそのサービスを使いやすくなりますし、またサポートを受けたいという人も一定数現れるでしょう。サービスとは以下のようなものを指します。サービスなので、ユーザーが喜ぶものであれば何でもありです。質問を受け付けるインストールをサポートする特別なプレゼントを贈るサーバー側で用意したサービスを通信で提供する。ウィルスチェックなど定期的に特別プログラムや画像を配布する最後の特別プログラムについては、WordPressに関するものであればGPL適用が義務ですので、配布するプログラムは100%GPLが一般的ですが、サービスとして考えた場合、スプリットライセンスを適用したとしても法的には問題ないですし、その特別感をユーザーが喜ぶ場合もあります。顕著な例は「そのユーザーのための納品」です。私個人の見解にはなりますが、サービスはサービスですので、最終的にはユーザーが喜ぶものを採択すべきではないかと思います。配布と判断される範囲においてスプリットライセンスを採用した場合はWordPressコミュニティのポリシーとは違ってきますので(※5)、注意も必要です。論争の流れあなたのテーマやプラグインを再販など悪用する人はいるのか?根本問題として、GPLに対する一番の懸念点は「悪用して再販する人がいるのではないか?」「有償だったものが、無料でどんどん拡がってしまうのではないか?」ということだと思います。誰が行ってもよいので、そのように考える人もいるかも知れませんし、事実、一定数いるでしょう。受け取ったテーマやプラグインを他人に渡すのも自由です。GPLは、もし悪用者がいたとしてもその悪用者にもGPLを強います。「ソースコードの自由」と「独占を許さない」ためのルールであり、その方が社会にとって有益だと考えるポリシーです。そのように考えると、悪用者にとってもあまりうまみはありません。原作者ほどそのソースコードに詳しく、かつ情熱をもって適切なサポートができる人は、まず現れません。世の中の多くの人は、原作者に敬意を払うものですし、それは歴史が証明しています。自分のソースコードが世の中に役立つと信じ、寛大な心で広まることを願うことこそ、WordPressにふさわしい考え方だともいえます。ソースコードがオープンであることで、誰かがバグを発見し、なおしてくれるかも知れないのです。具体的なソース公開の方法GPLライセンスに觝触しないようにソースを公開する具体的な方法についてです。いってもGPLが求めているのは、前述の通り下記5つを守ることです。GPLライセンス文言を原文ママで読める形で提供することソースコードの開示をすることソースコードの入手方法を明記すること領布した相手に対して、ソースコードの開示は3年間は行う事GPL以外に条件はつけてはならないWordPressの代表的なテーマとプラグインを参考に、どのようにすべきかを見ていきます。テーマを配布する場合テーマの正式な作り方はこちらにあります。Twentyを参考にみていきます。Twentyをダウンロードすると、そのフォルダの直下にreadme.txtがあります。このreadme.txtはテーマに入れることが推奨されています。Twentyのreadme.txtを見ると冒頭に以下の記述があります。http://www.gnu.org/licenses/gpl-2.0.html各項目の意味は下記です。http://www.gnu.org/licenses/gpl-2.0.html後半2つのGPLライセンスに関する情報は、決まり文句になります(※GPLv3を採用する場合は置き換え)。それに続いてDescription(説明)があり、Copyright(著作権)に関する記載があります。Twentyで使用されているアイコンやPHPコードのライセンスが列挙されています。フリー素材を使う場合も、そのライセンスを調べて記載することが重要です。しないとユーザーが自由に使えないからです。【結論】テーマはreadme.txtを同梱して配ればOK結論として、テーマフォルダ直下にreadme.txtを作成し、その中にGPLv2ライセンスについて書きましょう。Copyrightにテーマで使用しているアイコンなどのソースの入手先とライセンスを記載します。テーマのreadme.txtのフォーマットに特に決まりはありませんが、テーマチームのモデレータをされている金井俊浩さんのブログが詳しいので参考URLとして掲載しておきます。Anti-Spamを参考にみてみます。Akismetはワードプレスに標準で搭載されている、コメントのスパムチェックを行うプラグインで、WordPressの創始者Mattが代表を務めるAutomattic社が制作しており、月額制の有料サービスも販売しています。readme.txtにライセンス条項を入れるまずテーマと同じく、プラグインフォルダ直下にreadme.txtが存在しており、その中にライセンスに関することなどを記載しています。プラグインの場合、このreadme.txt作成は必須です。▼日本語のプラグイン開発ガイドhttps://ja.wordpress.org/plugins/developers/下記にreadme.txtのサンプルがありますので、この通りに記載していくことが求められます。linkという寄付の受付先を記載することもできます。▼readme.txtのサンプルhttps://wordpress.org/plugins/readme.txt作成したreadme.txtのバリデーションチェックツールが公式に用意されていますので、活用すると良いと思います。URIの記載がありません。URIを記載しない場合は、LICENSE.txtを作成し、その中にGPLv2の原文(英語)をコピーして入れておくという手段がとれます。GPLとしては、ちゃんと利用者がGPLの内容を確認できればどのような形で配布してもいいのです。ちなみにLICENSE.txtへのライセンス記載は、WordPressのプラグインに限らず、公開されているソースコードで一般的に使用される手法です。有料ライセンスはどのように販売している?余談ですが、Akismetは、一般的なウィルス対策ソフトのように、最新のチェックをうけるためにAPIキー(ライセンスキーのようなもの)を販売しています。このことはreadme.txtのどこに記載しているのでしょうか?実はreadme.txtのディスクリプションのところに追伸として一行だけ書いているのですね。Keyを入れるように求められるよ。これは個人は無料で法人と商用は有料だよ」これはもちろんGPL違反ではありません。下記の状態だからです。配布されているソースコード自体はオープンで改変可能で無料であるreadme.txtにてGPLv2への参照も正しく掲載している販売しているのはサーバー通信を介したチェックサービスであるこの状態で販売につなげている動線ですが、プラグインを有効化するとまずアカウント登録を促されます。上記のボタンをクリックすると、サービス案内ページに飛んで、任意のプランを選んでアカウント登録(無料or有料)をし、APIキーを手に入れるという流れです。プラグインを販売しようと思う人には、参考になるプラグインだと思います。【結論】プラグインもreadme.txtを同梱して配布する結論としては、プラグインのライセンス規約もreadme.txtに記載して配布します。公式に配布するならばプラグインのreadme.txt作成は必須なので、ここはあまりミスなくできるのではないかと思います。ソースコードの管理はGitHub?SVN?どこで行うべき?これは特にルールはありません。別にローカルでやってもOKです。ほとんどの人がテーマやプラグインを配布する時にzipで固めると思いますが、そこにライセンス条項を記載したreadme.txtが入っていればOKです。すれば、そのzipを受け取った人が、同梱されているソースを自由に使うことができます。WordPress.ORGの公式ディレクトリに登録する場合は、SVNが求められます。Subversionの略称です。昔はCVSというバージョン管理システムが有名だったのですが、現在はGit、もしくはSVNが主流となっています。その中でもGitHubは様々な人とGitで開発を共有できる便利なサービスなので人気になっており、多くのソースがGitHubで管理されています。一方で、WordPress.ORGはApacheが提供しているSVNを採用しています。従って、普段のソース管理は別にGitHubを使っていても問題ないのですが、公式ディレクトリにアップロードする時にはSVNを使用する必要があります。注意点としては、本当にリリースするものだけをアップロードするということです。詳しい案内はこちらにあります。SubversionSubversionの使い方(英語)JSやCSSなどのminifyはしてもよいの?難読化やminifyは、ファイルサイズを小さくする目的もあり、ユーザーの実行環境にはプラスです。ソースが読みづらくなるという欠点があります。GNUの見解として、やはりソースコードが改変できない(自由を奪う)のは良くないという考え方をしています。下記ぜひ一読ください。▼JavaScriptの罠(日本語訳)https://www.gnu.org/philosophy/javascript-trap.html.jaつまり難読化やminifyも悪です。通信上で難読化されているのも良しとしていません。悪意があるコードを送られてもユーザーに対処のしようがないからです。上記の考え方を踏襲するならば、わかりやすいJavaScriptソースコードをそのまま使うべきですが、ファイルサイズは大きくなり、それが本当にユーザーのためかというと悩ましいのが実際だと思います。私個人の考え方として、ソースが読める状態であればminifyは問題なく、元ソースを必ず参照できるようにしてあれば、難読化やminifyをかけても問題ないのではないかと考えています。事実WordPressが標準で実行するjQueryはminifyされています。この件に関する公式見解を見つけられていませんので、もしご存知の方は私までご連絡頂けるとありがたいです。記事をアップデートいたします。ユーザーからのフィードバックはどのように受け付けるべき?これもルールはありません。いえWikipediaのように、いくらソースを公開しているとはいえ、誰でもソースを自由に書き換えれるようにはしないでしょうから、うまくメールや問い合わせフォーム、ブログのコメント欄、GitHubの機能などを活用することになると思います。フィードバックの貰い方はバグの報告ページが参考になると思います。WordPress.ORGの公式ディレクトリのフィードバック機能を使うもしWordPress.ORGの公式ディレクトリにアップロードしたならば、その機能が使えます。翻訳を手伝ってもらったり、コードを閲覧してもらったり、Tiketsを通じたバグ報告レポートを活用することができます。参考までにAkismetプラグインの開発タブの画面です。このように協力を仰ぐメッセージがデフォルトで表示されます。ソース公開方法のまとめ結論はシンプルで、テーマであってもプラグインであってもreadme.txtを作り、その一式をzipなどで配布する。その時、100%GPLにしてWordPress.ORG公式ディレクトリに掲載したならば、より多くの人の協力を仰げるかも知れません。それも含めて、フィードバックの受取方は事前に決めておくとよいでしょう。QuarkAのライセンスに対する考え方は?私たちQuarkAも、GPLを管理するフリーソフトウェア財団(FSF)の考え方に同意します。QuarkAの「すべての人にデータに基づくインスピレーションを」というビジョンを達成するために、GPLは正しい選択だと思います。そのため、正式版リリース時には100%GPLでソフトウェアを提供しようと考えていますし、WordPress.ORGにも公開する予定です。このソースコードは改変自由で、オープンで無料です。FSFの主張する、サポートが必要な人には有償でサポートを提供するという考え方にも賛同します。無料版と有料版の違いにも記載していますが、基本的にはサービス(人的、およびサーバーサイド処理)を有償とする考え方をしています。FAQ:無料版と有料版は何が違いますか?無用の罪人は作らない一方、私たちのもう一つの約束として、利益をよりよい未来に還元するという考え方があり、その指針に世界中の人の笑顔を増やすことがあります。その中で、なんでも無料で提供することは、自由の精神として賛同できますが、使い方を間違えると、むしろ笑顔を減らすことになると思っています。私は父から「机の上に財布をおいてはいけない。それは無用の罪人を作る」と教わりました。自由に使ってよいという権利は、同時に「自由の責任をとってもらう」と同義です。私たちは、無料ですべての機能を公開した場合、サポートなしにはソフトウェアを活用できない人が増えると予想しています。事実、β版の時点でその傾向があります。その場合、当然我々としては有償サポートを契約して頂きたいですし、それがルールになります。そのルールを我々自らが破って、無料サポートを無限に提供すれば、チームは疲弊し、存続できなくなる可能性があります。それは期待してサポートにお金を払って頂いているユーザーのためにも、我々メンバーの生活と文化を守るためにも道義的にしてはいけません。ソフトウェアが無料で公開されているならば、多くの人は使いたいはずですし、無料でもサポートがないことで使えなかったら、がっかりすると思います。それはユーザー責任なので、メーカーは知らないよ、というのがルールだとは思いますが、これは無用の罪人を作るのと同じ行為だと思っています。従って、誰もが使える機能を100%GPLで公開し、マスター向けの機能を有償とすることが、我々の一つの役目であると考えています。できれば多くの人の力をお借りして、その無償コードのメンテナンス、およびできる範囲のサポートをしていきたいと考えています。β版のライセンスについてβ版については、そもそも広く領布することを目的としたものではなく、ご意見をいただきながら、より良い正式版を作るために日本国内で公開しています。WordPress.ORGサイトにも公開していませんし、2020年12月31日をもって動かなくなるようにもしています。従って考え方としても100%GPLとはせずスプリットライセンスを採用していますし、むしろ中途半端なものですので、これを元に改変して配るのも、今はできればやめて頂きたいと思っています。ロジックを大きく改変する予定もあります。正式版は100%GPLで公開予定ですので、ぜひ正式版までお待ち頂きたいです。強制力があるものではありませんが、β版の主旨にご協力頂ければ幸いです。丸山耕二/QuarkA・ウェブジョブズQAチームのPdM。特定商取引法に基づく表記Recruit(採用)公式キャラ【くーすけ】QAアナリティクスはヴィッセル神戸サポートファミリーです。