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

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

ただいまの
回答率

90.50%

  • Node.js

    1864questions

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

  • Electron

    195questions

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

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

解決済

回答 1

投稿

  • 評価
  • クリップ 1
  • VIEW 2,484

cpthgli

score 41

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+4

配布されるアプリに含まれる物につては、それぞれのソフト(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/10 00:40

    業務で一度 Electron アプリのリリース段階のお手伝いをしたことが有るのですが、はっきり言って大変でした。

    Electron は依存ライブラリなど必要な物全てパッケージ化して、オフライン環境であっても使用できる単体アプリと構築できるのは非常に便利なのですが、配布物の中に大量のOSSが含まれることになるので、キチンとしたリリース作業は非常に手間がかかります。

    私が経験したケースでは海外へのアプリ提供だったので、輸出管理手続き関係してくるのでさらに大変。(暗号化機能が含まれるかどうかの確認など)

    同様に、ruby on rails のシステム提供の時も、大量の使用gemsの調査が面倒でした。

    npmも含め便利なパッケージ管理システムが一般的になり、依存パッケージの使用/導入自体は劇的に楽にはなったのですが、そのせいで「開発者自身が細かなライセンス義務などあまり気にしなくなり、結果、アプリリリースの後工程になって、面倒な作業が増えてしまった」って感じでしたね。

    キャンセル

  • 2017/03/10 16:51

    回答ありがとうございます。

    Electronのアプリを配布する際に、多くの依存ライブラリが含まれることに気づき、もしやと思いましたが、やはり全てのライセンスに従う必要があるのですね。

    とても参考になる補足情報も、ありがとうごさいました。

    キャンセル

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

  • ただいまの回答率 90.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Node.js

    1864questions

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

  • Electron

    195questions

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