saturday06/VRM-Addon-for-Blender

Feature request: Supports new licensing requirements for the Blender Extensions Platform

saturday06 opened this issue · 12 comments

Is your feature request related to a problem? Please describe

Supports new licensing requirements for the Blender Extensions Platform.

https://extensions.blender.org/approval-queue/vrm/#activity-2783

dfelinto
Hey everyone,

Just a heads-up about a recent change regarding the licensing of add-ons on the Blender extension platform. Moving forward, all add-ons will need to be released under the GNU/GPL 3.0 license (SPDX:GPL-3.0-or-later). This is mainly to keep things simple and consistent across the board.

Previously, we accepted various licenses as long as they were compatible with Blender’s distribution. However, to avoid any confusion and streamline the process, all add-ons using the bpy API should now be presented as GPL 3 (the same license the Blender bundle is distributed). Regardless of whether the original code was under GPL 2, or something else like MIT or ZLIB.

Existing add-ons versions won't be affected. However, new updates will need to comply to the revised requirements.

Thanks for understanding, and feel free to reach out if you have any questions.

Describe the solution you'd like

I think it will probably change the license to SPDX-License-Identifier: MIT OR GPL-3.0-or-later. Contact all source code contributors. If permission to change the license is not received within a week or two, a new code is written.

The MIT license is compatible with GPL-3.0, but may be incompatible with GPL-3.0-or-later. Because it is unclear what kind of license "or-later" will be.

https://opensource.stackexchange.com/questions/5247/if-a-project-is-released-under-gplv3-and-gplv4-is-less-restrictive-what-happens

Describe alternatives you've considered

Additional context

現在お問い合わせ中の方

  • iCyPさん
    • X経由
  • FujiSunflowerさん
    • Discord経由

旧MToonのglslファイルは、一部UniVRM(MITライセンス)を参考にしたコードが入ってそうだと感じているので、良い機会なので削除します。

とりあえず連絡大変そうなので一旦コメントだけ残しておきます。

ご確認ありがとうございます!ご回答もお待ちしております!

サンフラワーふじの心情的な観点でのライセンス変更に関しては問題が無いかなと思います。
プルリク当時の記憶だとBlenderのUI機能の啓蒙程度で書いたはずなので、サンフラワーふじに著作権的なものを感じて書いていなかったと思います。
客観的な観点では2つ疑問があります。
1つ目は、MITかGPL-3.0-or-laterかどちらか選べるマルチライセンスという形態が可能なのかという点です。MITはGPL-3.0への互換性があるという回答が仰る通りGNUのところにあるはずですが、GPL-3.0がMITへの互換性があったかには疑問を感じます。
2つ目は、サンフラワーふじの書いたプルリクの厳密なライセンス性に関してです。こちらはソースコードの見直しタイミングとなっているので心配性かもしれませんが気になりました。

ご回答ありがとうございます!また、追加のご質問にお答えします!

1つ目は、MITかGPL-3.0-or-laterかどちらか選べるマルチライセンスという形態が可能なのかという点です。MITはGPL-3.0への互換性があるという回答が仰る通りGNUのところにあるはずですが、GPL-3.0がMITへの互換性があったかには疑問を感じます。

ご質問に対する回答としては「可能です」とお答えします!

今回僕が目指している「MITかGPL-3.0-or-laterかどちらか選べるマルチライセンス」とは、例えば

  • 「GitHub ReleaseではMIT版のソースコードを配布する」(これはマルチライセンス版にするかもしれない)
  • 「Blender Extensions PlatformではGPL-3.0-or-later版のソースコードを配布する」
  • ユーザーはどっちのライセンス版を使っても良い。内容は同じ。

の実現です。

一方GNUのサイトに記載の「GPLと互換性がある(注: これは僕の悪い翻訳で、公式サイトの訳は「両立する」でした)」」という記載は、それを妨げるようなことはできるか?という問題ですが、GNUのサイトの記載は、

ほかのライセンスのもとでリリースされたコードをGNU GPLのもとでリリースされたコードと結合して一つの大きなプログラムにすることができます。

という意味でした。これは、GPLが感染して、他のソースコードのライセンスをGPLに強制上書きする性質を持つライセンスなので、それができない利用条件があるライセンスのプログラムと結合できない点から発生した概念だと理解しています。転じて、互換性がある(両立する)ライセンスは「GPLに自動で変更してもライセンス的にOK」なライセンスであるともいえます。

これはソースコードを合体させたりライセンス変更するときに出てくる概念のため、ソースコードの著作権者が『あっちで配るときはXライセンスで、こっちで配るときはYライセンスにします!』という、本来著作権者が持っている権利を妨げることはできないです。

しかしながら、将来出てくるGPL-999.9に「このソースと同一のソースコードを別ライセンスで配布することを禁じる」とか書いてあったらできなくなるんですが、そうなったらBlenderアドオン以前にOSS界隈がひっくり返って大爆発するので、考えないことにする、という感じです。。。

2つ目は、サンフラワーふじの書いたプルリクの厳密なライセンス性に関してです。こちらはソースコードの見直しタイミングとなっているので心配性かもしれませんが気になりました。

配慮ありがとうございます。こちら、サンフラワーふじさんの書いたコードはサンフラワーふじさんが著作権を持っています。訂正: 日本の法律では「**又は感情を創作的に表現したものであつて、文芸、学術、美術又は音楽の範囲に属するもの」とのこと

また、そのコードを参考に @saturday06 が書いた、似たようなコードにもサンフラワーふじさんの著作権がどこまで及ぶかどうかは裁判が発生しない限りわからないものだと思っています。現在レポジトリに残っているコードは、ラベル文字列などを除くとほぼこちらになります。

正直、Pull Requestで頂いたコードは、 @saturday06 視点では、BlenderのPythonによるアドオンの書き方の一般的なサンプルを頂いたような認識でした。一般的過ぎて、例えば著作物として利用禁止をされてしまうとUIを含むアドオンがほぼ書けなくなってしまいます。そのため、裁判が発生したとしてもある程度情状酌量がいただけることを期待していますが、やってみないとわからないところではあります。。。

ざっくり確認したところ、こちらの認識もBlenderアドオンのサンプルを教えているだけという感じなので自分が書いたサンプル自体が何かのライセンスを踏み抜いている可能性は低いのかなぁとは思います。

正直、Pull Requestで頂いたコードは、 @saturday06 視点では、BlenderのPythonによるアドオンの書き方の一般的なサンプルを頂いたような認識でした。

また、GitHub ReleaseとBlender Extensions Platformで異なるライセンスという意味でのマルチライセンスだと納得しました。

ご確認ありがとうございます!

すみません一点

-「GitHub ReleaseではMIT版のソースコードを配布する」(これはマルチライセンス版にするかもしれない)
-「Blender Extensions PlatformではGPL-3.0-or-later版のソースコードを配布する」

このような説明をしてしまったのですが、Blender Extensions Platformでもマルチライセンス配布がもし可能になったらそちらもマルチライセンス配布に変更する予定です。これは、すみません、最初に目指しているとした方式と違うじゃん!ってなってしまいますが、リリース配布オペレーションのメンテナンスコストを考えると完全に同じソースベースのほうが都合が良いためです。ただ、ぼくの主張としては「『あっちで配るときはXライセンスで、こっちで配るときはYライセンスにします!』がOK」という趣旨は変わってない想定です!

Discord含め粘り強くことらのご要望に付き合っていただきありがとうございます。助かりました!