質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.39%
Electron

Electronは、HTML5とNode.jsというWebの技術を用いてデスクトップアプリケーションを作成できるクロスプラットフォームな実行環境です。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Q&A

解決済

1回答

13191閲覧

Electronでアプリケーションを配布する場合のnode_modulesのライセンス表記

cpthgli

総合スコア76

Electron

Electronは、HTML5とNode.jsというWebの技術を用いてデスクトップアプリケーションを作成できるクロスプラットフォームな実行環境です。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

0グッド

1クリップ

投稿2017/03/09 10:18

Electronでアプリケーションを配布する場合に、
もともとElectronに使われているmoduleのライセンスや、
npmで他にインストールしたrequestなどのmoduleのライセンスは、
表記すべきなのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

配布されるアプリに含まれる物につては、それぞれのソフト(OSS)のライセンス条項に従う必要があります。
Electron本体のライセンスは、それら依存ライブラリまで適用されるものでありません。(これは、Electronに限った話ではありません)

npmでインストールされたアプリのライセンス条項に、そのソフトのライセンス条項をアプリの提供者に提示しないといけないとなっていて(たいていのOSSのライセンスは該当)、配布物のなかにそのパッケージが含まれるのであれば、アプリ提供者がライセンスを確認できる状態にしなければなりません。

これはnpmで直接指定してインストールしたパッケージに限らず、そのパッケージが依存していて同時に導入されたソフトについても同様です。

でelectronアプリの場合、asar でリソースをパッケージ化していなければ、app\node_modules に npmパッケージがそのまま使用者にも見える形になっており、たいていの場合そこに各モジュールライセンスに関するファイルが存在するので、それでそのnpmパッケージ本体については最低限の義務は果たせる事が多いです。

しかし、asar でリソースをパッケージ化している場合、使用者にnpmパッケージのライセンスファイルが見える状態にあるとは言えないので、別途、各npmパッケージのライセンス情報をアプリ提供者に何らかの方法で伝える必要があります。

またasar でリソースをパッケージ化していない場合でも、npmパッケージが依存しているネイティブのライブラリがOSS場合、app\node_modules 以下にはそれら依存ライブラリのライセンス情報ファイルが存在しない可能性が高く要注意で、やはり配布物に含まれる全てのライセンス提示が必要なソフト(OSS)はリスト化した方が良いでしょう。


例えば electron ベースのVS Codeなどでは、asarでパッケージ化されているのは electron と atom 部分だけで、使用している npmパッケージの種類やライセンスについては app\node_modules 以下のファイルでも確認できるのですが、
\Microsoft VS Code\resources\app 以下に、

  • LICENSE.txt
  • LICENSES.chromium.html
  • ThirdPartyNotices.txt

とファイルがあり、依存ライブラリのライセンスなど含め、これらのファイルで確認できます。

さらに、
マイクロソフト ソフトウェア ライセンス条項 MICROSOFT VISUAL STUDIO CODE に、

d.第三者のプログラム。

i. 本ソフトウェアには、本ソフトウェアに付属している ThirdPartyNotices ファイルに規定されているとおり、別途の法律上の通知が付属し、別途のライセンス条項が適用される、第三者のコンポーネントが含まれている場合があります。かかるコンポーネントに別途のライセンス条項が適用される場合でも、下記の免責事項ならびに損害に関する制限および除外は併せて適用されるものとします。
ii. 本ソフトウェアには、ソース コード公開義務のあるオープンソース ライセンスに基づいてライセンスされる第三者のコンポーネントが含まれています。これらのライセンスの複製は、ThirdPartyNotices ファイルまたは付属のクレジット ファイルに含まれています。お客様は、当該オープンソース ライセンスで求められているとおり、5.00 米ドルの郵便為替または小切手を次の宛先に送付することにより、対応するソース コード一式をマイクロソフトから取得することができます。Source Code Compliance Team, Microsoft Corporation, 1 Microsoft Way, Redmond, WA 98052 USA。支払の備考欄には、「third party source code for Visual Studio Code」と記載してください。マイクロソフトは、ソースを http://thirdpartysource.microsoft.com で公開することもあります。

となっており、Third Party Disclosuresで、Product に "Visual Studio Code" を入れて検索すれば、npm以外の依存OSSのライセンスなどが確認できるようになって、chromium などのソースコードも使用者が入手可能な状態にしています。
(アプリ提供者が求めればソースコード提供が必要なライセンスのOSSを使用していれば、これも必要な措置)

以上、ご参考までに。

投稿2017/03/09 15:23

KenjiToriumi

総合スコア344

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KenjiToriumi

2017/03/09 15:40

業務で一度 Electron アプリのリリース段階のお手伝いをしたことが有るのですが、はっきり言って大変でした。 Electron は依存ライブラリなど必要な物全てパッケージ化して、オフライン環境であっても使用できる単体アプリと構築できるのは非常に便利なのですが、配布物の中に大量のOSSが含まれることになるので、キチンとしたリリース作業は非常に手間がかかります。 私が経験したケースでは海外へのアプリ提供だったので、輸出管理手続き関係してくるのでさらに大変。(暗号化機能が含まれるかどうかの確認など) 同様に、ruby on rails のシステム提供の時も、大量の使用gemsの調査が面倒でした。 npmも含め便利なパッケージ管理システムが一般的になり、依存パッケージの使用/導入自体は劇的に楽にはなったのですが、そのせいで「開発者自身が細かなライセンス義務などあまり気にしなくなり、結果、アプリリリースの後工程になって、面倒な作業が増えてしまった」って感じでしたね。
cpthgli

2017/03/10 07:51

回答ありがとうございます。 Electronのアプリを配布する際に、多くの依存ライブラリが含まれることに気づき、もしやと思いましたが、やはり全てのライセンスに従う必要があるのですね。 とても参考になる補足情報も、ありがとうごさいました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.39%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問