Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OSS の変遷を振り返る

OSS の変遷を振り返る

watsuyo_2

April 20, 2022
Tweet

More Decks by watsuyo_2

Other Decks in Programming

Transcript

  1. 目次 1. 近年の OSS の話題を振り返る 2. Richard Stallman と Eric

    S. Raymond 3. OSS のライセンスについて 4. faker.js, colors.js 事件の考察
  2. "No more free work from Marak - Pay Me or

    Fork This" • 2022年1月中旬: faker.js, colors.js に悪意のあるコードが混入した事件[1] ◦ 開発者が意図的に悪意のあるコードを混入させた ◦ 無償で提供されている OSS のメンテナー、コントリビューターに対する対価や 寄付に関する問題が浮き彫りになった ◦ OSS の開発者が、悪意のあるコードを混入させた場合に、ソースコードの権利 について議論となった ◦ ※ 事件の背景には、Marak氏の “個人的な問題” も大きく関わっていますが、 今回の論点ではないので省いています
  3. Richard Stallman • “UNIX 互換のソフトウェア環境を全てフリーソフトウェアで開発するプロジェクトであ る GNU プロジェクトの提唱者として知られるプログラマーである”[2] • “フリーソフトウェア財団(FSF)を設立し、自由なソフトウェアのためのライセンスであ

    るGPL(GNU General Public License)やコピーレフトの概念を創案するなど、今日の フリーソフトウェアのあり方について見過ごすことのできない多くの重要な活動を行っ ている。”[2]
  4. Richard Stallman による「フリー」の定義 • “To understand the concept, you should

    think of “free” as in “free speech,” not as in “free beer.””[3] • “個人では、すべてのプログラムを学ぶことは難しい。*自由3の段階では、あなたが 施した変更が私のためになる。ほとんどの場合、あなたが求めているものは、みんな が求めているものだからだ”[4] • 自由の3つの段階 1. “ソースコードを自分で自由に変更できる段階”[4] 2. “隣人のために再配布することが自由な段階”[4] 3. “コミュニティに対して改変したものを還元する段階”[4]
  5. OSI: Open Source Initiative 設立までの道のり • 1997年: Raymond 氏 伽藍とバザール

    公開 ◦ ユーザは、共同開発者になってくれる大事な財産である ◦ ソースコードが公開され、ユーザが問題を調査し、直し方を提案してくれ、一人 でやるよりずっと早くコードを改善できる ◦ その効果はユーザが増えるほど顕著になる • 1998年1月: Netscape 社が、Internet Explore 以外で当時人気の高かったブラウザ Netscape Communicator のソースコードを公開 (のちの Firefox) ◦ Raymond 氏 も手助け • 同年2月: OSI 設立 (Raymond 氏の裏話)
  6. OSSのライセンスについて • コピーレフト ◦ “著作権を保持したまま、二次的著作物も含めて、すべての者が著作物を利用・再配布・改変できな ければならないという考え方 ”[6] ▪ 再配布の際には同じ条件を課すことを強く義務付ける ▪

    初のフリーソフトウェアのライセンス ◦ 例:GPL, AGPL • 準コピーレフト ◦ 改変した場合のみ、公開義務がある ◦ 例:MPL, LGPL ◦ Weak Copyleft とも呼ばれる • 非コピーレフト ◦ 利用・再配布・改変などの条件が緩い ◦ 例:MIT, BSD, Apache 2.0 ◦ Permissive(寛容な)ライセンスとも呼ばれる • とほほのライセンス入門 や オープンソースライセンスの日本語参考訳 に詳しく掲載されています
  7. OSSのライセンスについて • Node.js ◦ MIT License • TypeScript ◦ Apache-2.0

    License ◦ ユーザーに特許使用権がある • Rust ◦ Dual-licensed under Apache 2.0 and MIT • yarn ◦ BSD 2-Clause License • Web-Dev-For-Beginners ◦ MIT License • starship ◦ ISC License ◦ 改変バージョンを許さない
  8. OSS のライセンスの文脈で2人を振り返る • Richard Stallman ◦ 1985年 フリーソフトウェア財団(FSF)設立 ◦ GPL(GNU

    General Public License) ▪ 無償で利用・改造・再配布できる ▪ GPLのモジュールをライブラリとして呼び出すだけでも、呼び出したソース コード自体も GPL ライセンスとする必要がある ▪ 成果物の配布先に開発コードの公開が必要
  9. OSS のライセンスの文脈で2人を振り返る • Eric S. Raymond ◦ 「伽藍とバザール」を公開したことで、「フリーソフトウェア」という言葉を「オープ ンソース」へと言い換える動きが起こる ▪

    相互扶助の精神の元、寛容的なライセンスが支持されるきっかけになる (BSD, MIT, Apache etc...) ◦ ロングアイランドLinuxユーザー会のブログより本人談を引用↓ ◦ “I don't think we need licenses like the GPL, that punish people for taking code closed-source.”[7]
  10. faker.js, colors.js 事件当時の議論 • colors.js ◦ DanielRuf 氏によって、バグの起こ る前のバージョン固定方法を投稿 ◦

    DABH 氏によって、バグの起こる 前のバージョンで fork した新たな レポジトリを作成 [10] [11]
  11. faker.js, colors.js 事件の考察と学び • たとえ OSS の開発者が、悪意のあるコードを混入させたとしても、本人の同意なし に、著作権者を取り除くことや、ライセンス自体を修正することはできなかった • MIT

    ライセンスである以上、免責であり、同じことが起こる可能性は否定できない • 寛容な OSS ライセンスによる相互扶助の精神が垣間見れた • レポジトリを管理している GitHub が、Marak 氏のアカウントを一時的にBANしたこと をは正しい判断だったのだろうか?
  12. 参考文献 [1] No more free work from Marak - Pay

    Me or Fork This · Issue #1046 · Marak/faker.js · GitHub, http://web.archive.org/web/20210704022108/https://github.com/Marak/faker.js/issues/1046 , 2022.4.20 参照. [2] リチャード・ストールマン - Wikipedia, https://www.weblio.jp/content/リチャード・ストールマン , 2022.4.20 参照. [3] What is Free Software? - GNU Project - Free Software Foundation, https://www.gnu.org/philosophy/free-sw.en.html , 2022.4.20 参照. [4] R・ストールマン講演「ソフトウェア特許は技術の進歩を阻む悪」 , https://internet.watch.impress.co.jp/www/article/2003/0425/stallman.htm , 2022.4.20 参照. [5] エリック・レイモンド - Wikipedia, https://ja.wikipedia.org/wiki/エリック・レイモンド , 2022.4.20 参照.
  13. 参考文献 [6] コピーレフト - Wikipedia, https://ja.wikipedia.org/wiki/コピーレフト , 2022.4.20 参照. [7]

    sukhanov.net, https://dotcommie.net/feed/index.php?id=160 , 2022.4.20 参照. [8] Zalgo issue with `v1.4.44-liberty-2` release · Issue #285 · Marak/colors.js, https://github.com/Marak/colors.js/issues/285 , 2022.4.20 参照. [9] Zalgo issue with `v1.4.44-liberty-2` release · Issue #285 · Marak/colors.js, https://github.com/Marak/colors.js/issues/285#issuecomment-1008099341 , 2022.4.20 参照. [10] Zalgo issue with `v1.4.44-liberty-2` release · Issue #285 · Marak/colors.js, https://github.com/Marak/colors.js/issues/285#issuecomment-1008168237 , 2022.4.20 参照. [11] Zalgo issue with `v1.4.44-liberty-2` release · Issue #285 · Marak/colors.js, https://github.com/Marak/colors.js/issues/285#issuecomment-1008212640 , 2022.4.20 参照.