Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ロボットシステム学2015年第6回

6,088 views

Published on

ライセンスの話。

Published in: Technology
  • Be the first to comment

ロボットシステム学2015年第6回

  1. 1. ロボットシステム学 第6回 上田隆一
  2. 2. 本日の内容 • フリーソフト、オープンソース、著作権、ライセンス – 背景 – 適当に人のものを使っていませんか? – 怖がって使わずに効率の悪い開発をしていませんか? – 我々はどう付き合うべきか? – コピペは善なのか悪なのか? Oct. 7, 2015 ロボットシステム学 2
  3. 3. 背景1: 大学生と著作 • ブログやGitHub等で誰でも自身の著作物を公開する機会 – 作文、コード、ロボットのデモムービー等 – コミュニティーや同人活動への参加 • こういうところでは、むしろ作品を公開しないと 存在しない人扱いを受けるという勢い(いいか悪いかは別) • インターネットはアバウトな部分と容赦ない部分が同居 – 著作権やライセンスへの理解がないと生きていけない • あからさまに違反して反省もしないと大炎上 • 悪徳ハッカソンに著作権を取られる等、被害にも遭う • 自身を売り出すためにはさらに深く理解が必要 Oct. 7, 2015 ロボットシステム学 3
  4. 4. 背景2: ソフトウェアの流用 • ロボットを扱うときに使うオープンソース – ROSやOpenCV等 • オープンソースを使った自身の著作物や コードは公開していいの?売っていいの? • そもそも何でオープンソースは公開されている? – 前回のUNIXの話 Oct. 7, 2015 ロボットシステム学 4
  5. 5. 前回のおさらい • UNIX: 当初、コードが公開された • コードが公開されたことによる恩恵 – 普及する – バグを第三者が見つけてくれる – 改良法を第三者が考えてくれる →抱えこむより公開した方が良い場合 • 困った点 – 商売難しい – 誰のもの? – プログラマーの世界の外で理解が得られない Oct. 7, 2015 ロボットシステム学 5 コードの公開: 工・法・商・歴史 様々な視点が 入り乱れる
  6. 6. リチャード・ストールマン(RMS) • コードは公開されるべきという立場の急先鋒 – GPLというライセンスに反映されている • Emacs, GCC等の作者 – 1971年〜MITのハッカー – 逸話 • パスワードに反対して破る →メンバーにパスワードを空白にするように促す • コピーライトへの批判 • アンチ携帯電話 • 講演で座禅を組んで「フリーダム」と一言だけ • ASCIIに招かれた時に廊下に座ってプログラミング開始 • 他、膨大な逸話 Oct. 7, 2015 ロボットシステム学 6
  7. 7. RMS/GPL関連のキーワード • ヒッピー(1960年代〜) – 反戦、反体制、フリーダム、フリーセックス、マリファナ、 LSD、ビートルズ、基本的に嫌儲厨、東洋思想 • 注意: 真似していいのは合法的な部分だけ • ハッカー – (技術的な定義は別として、文化的には) ヒッピーの考え方を継承した腕のあるプログラマ – 今も「ハッカー気質」の人は多い – 「ハッカー」 = 「なにやら悪い人」 • これはいわゆる「体制側」からの視点 Oct. 7, 2015 ロボットシステム学 7
  8. 8. コピーレフト • 著作物は利用・再配布・改変 できなければならない (つまりフリーダムであるべき) – Copyleft: all rights reversed • ただし、著作権は放棄しない – 放棄すると他者がそれを 拾って著作権を主張するようになる – ストールマン自身が被害に遭った経験から Oct. 7, 2015 ロボットシステム学 8 コピーレフトのマーク https://commons.wikimedia.org/w iki/File:Copyleft.svg (パブリックドメイン)
  9. 9. GPL(GNU General Public license) • コピーレフトの考え方を ライセンス化したもの • ストールマンの立ち上げた FSF(Free Software Foundation) が策定 • 基本的なルール – GPLで頒布されたプログラムについて、ユーザは 実行、再配布、改変、調査できる権利を有する – ただし、再頒布の際は再度GPLで頒布しなければならない – コードは、ユーザが要求した場合に公開しなければならない Oct. 7, 2015 ロボットシステム学 9
  10. 10. GPLの効果 • ソフトウェアの特性を損なわない – 1人が作ればみんな使える。そこから改良できる。 – 人のコードを持ってきた人(企業・団体)が改変部分を 隠してコピーを売ることを抑制できる。 • 具体的な例 – Linuxのデバイスドライバのコードが隠れない • カーネルのデバッグ時に有益 • LinuxがGPLなので、動的リンクするドライバもGPL – GPL(or GPLと何かのデュアルライセンス)でないと警告 Oct. 7, 2015 ロボットシステム学 10
  11. 11. LinuxとGPL • Linuxカーネルに付属するコマンド等 ソフトウェアの多くは「GNU」由来 • GNU(GNU’s not UNIX) – FSFで開発されているOS – LinuxはGNUの付属ソフトウェア(coreutils等)を使っている →GPLになる • FSFは、LinuxはGNU/Linuxと名乗るべきと主張 Oct. 7, 2015 ロボットシステム学 11
  12. 12. GPLの効果(?)の例 • 知らないうちにGPLのコードをちょっと使って バイナリを配布してしまった→コード全部にGPL適用 • GPLのライセンスは連鎖していく – 「感染」とも • 動的・静的にリンクしたライブラリも対象 – GPLのコードにはGPL互換でないライブラリが使えない – GPLでないコードにGPLのライブラリが使えない Oct. 7, 2015 ロボットシステム学 12
  13. 13. LGPL(GNU lesser general public license) • GPLでないプログラムに リンクして良いライセンス • 当初はGNU library general public licenseだった – ライブラリGPL → 劣GPL • 主な利用例 – GNU Cライブラリ, OpenOffice.org, … Oct. 7, 2015 ロボットシステム学 13
  14. 14. GPL化の方法 • 正確な情報はこの文章から • ソフトウェアにCOPYING or LICENSEという ファイル名でライセンス全文を同梱 – Gitならリポジトリのトップディレクトリに置く • 各ソースファイルの頭にも書くのが望ましい – copyrightとGPL/LGPLである旨。COPYINGの場所 • 例: https://github.com/torvalds/linux Oct. 7, 2015 ロボットシステム学 14
  15. 15. 考えてみましょう • 例えばロボカップで使ったコードをGPLで 配布するとどうなる? • 企業でコードが使われるだろうか? – 企業と共同研究できる? • 他のチームに与える影響は? • ROSやOpenCVの何かと一緒に配布できる? Oct. 7, 2015 ロボットシステム学 15
  16. 16. BSD • UCBで開発されたUNIXの一種(1977年〜) • AT&T由来のコードを含む – ライセンスに関する様々な問題を回避しながら開発 • もともとGPL以前の話なので別のライセンス体系 – 企業も絡んでいるのでビジネスのことが考慮されている Oct. 7, 2015 ロボットシステム学 16
  17. 17. BSDライセンス(旧、4条項、廃止) • 正式なもの • 要約 1. コピーライト、ライセンス全文、免責事項の明記 2. コードを公開せずバイナリ配布する時も1を守る 3. 貢献者(支援した団体等)のリストを明記(宣伝条項) 4. 貢献者の名前をソフトウェアの宣伝に勝手に使わない • 宣伝条項がいろいろと問題 – リスト巨大化 – GPLのコードへBSDライセンスのコードを混ぜられない(非互換) – (注意: 書いた人については著作権者なので明記) Oct. 7, 2015 ロボットシステム学 17
  18. 18. その後の修正 • 宣伝条項の廃止 – 修正BSDライセンス(3条項BSDライセンス) • OpenCV, ROS等で採用されている – GPLと互換に • 例: GPLのプロジェクトにROSのコードを混ぜて GPLで配布しても良い • 4番目の条項のないものも整備 – 2条項BSDライセンス • FreeBSD等で採用されている • *BSDとLinuxの競争はライセンスの話が深く関係 Oct. 7, 2015 ロボットシステム学 18
  19. 19. 「BSDライク」なライセンス • BSDライセンスに似たライセンスが多く存在 – 似ているだけなので注意 • 例: MITライセンス – 個人的によく使う – 全文 • 著作権とライセンスの表示の義務づけ • 免責 Oct. 7, 2015 ロボットシステム学 19
  20. 20. MITライセンスの適用 • ソフトウェアにライセンスの全文を同梱 – LICENSEというファイル名が一般的 • ソースファイルの頭に – 著作権表示 – MITライセンス全文あるいは MITライセンスである旨とLICENSEへのリンク Oct. 7, 2015 ロボットシステム学 20
  21. 21. フリーソフトウェア/オープンソースソフトウェア • 使い分けは慎重に – フリーソフト: FSFの主張する文脈で使う用語 • GPL周辺 – オープンソース: open source initiativeの主張する文脈で 使う用語 • ビジネス寄り Oct. 7, 2015 ロボットシステム学 21
  22. 22. プロプライエタリソフトウェア/商用ライセンス • プロプライエタリソフトウェア – 知的所有権が保持されて使用者が制限を受けるソフト – LinuxやMacの上で動かすのは問題ない • ライブラリやドライバレベルだとGPL等で問題になる • 何かにフリーなライセンスを選択しても著作権は 守られているので著作権者はライセンスを選べる – 同じものをGPLで配布したり商用ライセンスで配布したり • MySQLの例 – 何かをゼロから作ったら自身にとって一番良い方法を選択 Oct. 7, 2015 ロボットシステム学 22
  23. 23. クリエイティブ・コモンズ • ウィキペディアでよく見かけるとおもいます • 以下を目的とした国際プロジェクト・非営利団体 – コード以外のものを著作権を守りながら 人に使ってもらえないか? – 「all rights reserved」以外の方法を模索 – コードではないので公開・非公開という話とは少し違う • 「クリエイティブ・コモンズ・ライセンス」を策定・管理 – マーク、コモンズ証、リーガルコード、メタデータ等を提供 – ライセンスではないが、パブリックドメインについてもCC0 の策定 Oct. 7, 2015 ロボットシステム学 23
  24. 24. クリエイティブ・コモンズ・ライセンス • 以下の条件の組み合わせで著作者が発行 – 表示(BY) • 著作権者の表示、ライセンスへのリンク、変更がある場合の説明 – 継承(SA) or 改変禁止(ND) or 条件なし • 継承: 改変した場合、貢献部分に同じライセンスを適用 • 改変禁止: 改変したものの頒布禁止 – 非営利(NC) or 条件なし • 非営利: 営利目的利用の禁止 • 有り得る組み合わせ • CC BY • CC BY-SA, CC BY-ND, • CC BY-NC, CC BY-NC-SA, CC BY-NC-ND Oct. 7, 2015 ロボットシステム学 24
  25. 25. クリエイティブ・コモンズ・ライセンスの発行 • 著作物にマークをつける – 1ページ目参照のこと – 「コモンズ証」へのリンク • クラウドサービスではプルダウンメニューで 選べるようになっているものも – slideshare, GitHub等 – GitHubはソフトウェアのライセンスも選べる • ソフトウェアの場合は免責事項の関係でソフトウェアのライセンスを Oct. 7, 2015 ロボットシステム学 25
  26. 26. コードの流用(私見) • ライセンスの仕組みを理解して責任を持って積極的に行う – 勉強以外の目的ではなるべく自分で作らない – コードを書くなということではない。目的を最短時間で終わらせる。 • 自分で書くときの基準 – まだ世の中にない – 既存のもののライセンスの問題 – 既存のものに手を入れるのが難しい • だいたい難しいのでコードを読む技術があるのが望ましい – 衝動・勉強・同人活動 • それもまたよし。ただし、付加価値が無く終わることがないよう実験的に Oct. 7, 2015 ロボットシステム学 26
  27. 27. レポート等での流用・コピー • どういう解釈になるんでしょうか? – だた「先生がダメって言うから」という解釈は卒業しましょう • 人の文章等を流用した場合 – 何の引用もなくコピペすると著作権の侵害・訴えられたら有罪 – 著作権の問題がクリアしていても詐欺になる可能性 – レポートの場合はそもそも学習効果がないと0点 • 人の文章は基本、引用で済ます – このスライドのようにリンクを多用 – 論文なら引用の作法を守る Oct. 7, 2015 ロボットシステム学 27
  28. 28. まとめ • フリーソフトやオープンソースのソフトウェアライセンスや クリエイティブ・コモンズ・ライセンス – 作った人が著作権を保ったまま他の人が作った物を使う仕組み – 避けて通れない – 積極的に使いこなす重要性はますます増している • 次回 – Raspberry Piを扱います Oct. 7, 2015 ロボットシステム学 28

×