SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
ソフトウェアライセンス




              Hiroaki Kono
Copyright
   Copyright = 著作権
   著作権とは
     著作権(ちょさくけん)とは、言語、音楽、絵画、建築、
     図形、映画、写真、コンピュータプログラムなどの表現
     形式によって自らの思想・感情を創作的に表現した者に
     認められる、それらの創作物の利用を支配することを目
     的とする権利をいう。-wikipedia引用

     著作権は著作者に対して付不される財産権の一種であり、
     著作者に対して、著作権の対象である著作物を排他的に
     利用する権利を認めるものである。-wikipedia引用

     著作権者は、他人に対し、その著作物の利用を許諾する
     ことができる。-著作権法第63条1項
License
   ライセンスとは
     ライセンス(米: license、英: licence)は、それが存在
      しなければ違法となる行為をすることを許可すること、
      あるいはその許可を称する書面のことをいう。–
      wikipedia引用
     運転免許証 → 持ってなければ車運転しちゃダメ
     医師免許証 → 持ってなければ医業しちゃダメ
     etc...
Software License
   ソフトウェアライセンスとは
     ソフトウェアライセンス (software license) は、コン
      ピュータのソフトウェアについて、ソフトウェア利用者
      が遵守すべき事項を記載した文書である。-wikipedia引
      用
     要するにソフトウェアの利用上やっていいこととダメな
      ことを書いたもの


   ソースコードを公開している場合はソースコード
    のライセンスも含まれる
     オープンソースライセンスが有名である
Open Source License
 GPL (2系,3系)       -   Linux Kernel (GPL2.0)
 LGPL (2系,3系)      -   OpenOffice.org (LGPL3.0)
 New BSD License   -   FreeBSD, PostgreSQL
 Apache License    -   Apache HTTP Server
 MIT License       -   X11, jQuery
 etc....
Open Source Software(OSS)
   書いたソースを公開するだけで「オープンソー
    ス」というわけではない
   オープンソースとはOSDに準拠していることを意
    味する
   すなわちオープンソースソフトウェアとはOSDに
    準拠したライセンスの下で公開されているソフト
    ウェアのこと
   OSD準拠のライセンス*1は
    OSI認定マークによって証明できる→
Open Source Initiative



                         *1   http://opensource.org/licenses/alphabetical
Open Source Definition(OSD)
 1. 再頒布を許可すること
 2. ソースコードの再頒布も許可すること
     意図的にわかりづらくしたコードとかはダメ
 3. 派生ソフトを同じライセンスでの頒布を許可すること
 4. 派生ソフトの再頒布はパッチ形式を義務付けても良い
     派生ソフトを別の名前で再頒布することを義務付けても良い
 5. 個人(団体)への差別禁止
 6. 利用分野への差別禁止
     兵器利用は丌可とか制限できない
 7. 再頒布時に別のライセンスの付加を求めてはいけない
 8. 特定ソフトにおいてのみ有効なライセンスとしてはいけない
     それが何かの一部であるとき、全体と一緒のときだけOSSとかはダメ
   9. 共に頒布するソフトを制限してはいけない
     こんなソフトと一緒に頒布したらダメ、とかいう制限はできない
   10. 特定技術に依存したライセンスであってはならない
     windows上で動かす場合のみOSSとかはダメ                http://opensource.org/osd
                         http://www.opensource.jp/osd/osd-japanese.html
Redistributions
                                    更に改良
   再頒布とは?                          できるぞ

この人から見て
                      (Modified)
       Source          Source
        Code            Code
                                   再頒布
       Binary         (Modified)
       Code             Binary
OSS             OSS     Code
ですよ             ですよ



                                    便利だ!
Redistributions
   再頒布とは?
                         頒布→丌特定の人に配ること
この人から見て                  配布→特定の人に配ること
       Source
        Code
                                    再頒布
       Binary          (Modified)
       Code              Binary
                プロプラ     Code
OSS
                イエタリ
ですよ
                 ですよ



                                     便利だ!
Free Software?
   フリーソフトウェアの定義*1
     0. いかなる目的に対しても、プログラムを実行する自由
     1. プログラムがどのように動作しているか研究し、必要
      に応じて改造する自由
     2. 身近な人を助けられるよう、コピーを再配布する自由
     3. 改変した版を他に配布する自由
                                                         Proprietary Software

   OSDとの違いは?                                  フリーソフトウェアではないもの

     思想がずれているようです*2
     “Open source is a development methodology;
     free software is a social movement.”*3

                                     *1 http://www.gnu.org/philosophy/free-sw.html
                *2 http://www.gnu.org/philosophy/open-source-misses-the-point.html
                   *3http://www.gnu.org/philosophy/free-software-for-freedom.html
Copy Left
   FSF*1が提唱した著作権に対する考え方
   コピーレフトの定義
     著作物の利用、コピー、再配布、翻案を制限しない
     改変したもの(二次的著作物)の再配布を制限しない
     二次的著作物の利用、コピー、再配布、翻案を制限して
      はならない
     コピー、再配布の際には、その後の利用と翻案に制限が
      無いよう、全ての情報を含める必要がある(ソフトウェ
      アではソースコード含む)
     翻案が制限されない反面、原著作物の二次的著作物にも
      同一のコピーレフトのライセンスを適用し、これを明記
      しなければならない
      -wikipedia引用



                       *1   Free Software Foundation
OSS Licenses
New BSD License
   BSDライセンスを修正したライセンス

 頒布時にはソースコードやドキュメント等に
  Copyrightと本条件と無保証である旨の免責事項
  を含めること
 派生ソフトの広告に貢献者や団体の名前を許可
  なく記述していい
 以上の条件の下で改変の有無・形式を問わず
  頒布してOK
 URL先を見ると早い
     http://opensource.org/licenses/BSD-3-Clause
Original BSD License
   修正される前のBSDライセンス

   New BSD Licenseの
    “派生ソフトの広告に貢献者や団体の名前を
    許可なく記述していい”
が
 “派生ソフトの広告に貢献者や団体の名前を
 記述すること”
だった

   広告が大量の貢献者の名前で埋め尽くされるので
    この条項を消した
MIT License(X11 License)
   MITで開発されたX11(X Window System)の
    配布に使われているライセンス

   内容はNew BSD Licenseと同じ
     http://opensource.org/licenses/MIT


   BSDライセンスはNewとOriginalを混同しやすい
    ため、MITライセンスを用いる人は多い
Apache License 2.0
   Apache HTTP Serverの配布に使われている
    ライセンス

 内容はNew BSD Licenseとほぼ同じ
 “無料の特許ライセンスを不えること”
 “派生ソフト及びその広告にソフトの名前やト
  レードマークを勝手に使わないこと”
 “変更箇所を変更したとわかるようにすること”
 などが加えられている
GPL 2.0
   コピーレフトなライセンス

   そのまま頒布する場合
     著作権・本条件・免責事項を書く
   派生ソフトを頒布する場合
     変更点を明示する
     同じライセンス(GPL2.0)で頒布する
     プログラム実行時の対話的な部分で著作権・ライセンス
     条項を表示する
   バイナリコードを再頒布する場合
     ソースコード(又はその入手方法)を添付する
GPL 3.0
   技術等の進歩に伴ってライセンスも更新した
   用語の選別、他ライセンスとの互換性、 Tivo化
    への対処、DRMへの対処、ライセンス違反時の対
    処法、などを修正した

   Tivo化
     GPLであるにも関わらずハードウェアの制限によって
     ユーザの派生ソフトの作成を妨害するようなもの
LGPL 2.1, 3.0
   GPLに比べて自由を守る力が弱い(Lesser)ライ
    センス、限定的にコピーレフト

   オープンソースなソフトウェアを利用して開発す
    るとき、自分のコードには制約は課されない
     emacs, Eclipse等
   しかしライブラリの場合は話は別、派生ソフトと
    みなされてしまう
     jQuery, FuelPHP等(どちらもGPL系ではないが)


   そのライブラリの動的リンクを派生ソフトとみな
    さないのがLGPL
     lddコマンドで出るやつが動的リンクされてるもの
Things Programmer needs to care
           about OSS
OSS Use
   個人的に使う(再頒布(再配布)しない)
     基本的に使用方法は問われない
     AGPLの場合に限り例外あり


   ライブラリとして利用して作ったものを頒布する
    or 修正して頒布する
    or リンクして利用するものを頒布する
     基本的に派生ソフトと見做され、コピーレフトであれば
     ソースコードの頒布も必要
     ○ 配布であれば、配布対象者へのコードの配布でOK
License Compatibility
   2つのソフトを組み合わせる時に、両者のライセンスに
    互換性があるかどうか

   GPL互換性
     特にGPLとの互換性があるかないかが重要*1
     GPLコードの含まれるコードは全てGPLになる
      ○ GPLが許していることを禁止しているライセンスとは
        互換性がない
      ○ e.g. Apache License x GPL2.0は非互換(特許権停止について)



   GPL互換性リスト
     http://www.gnu.org/licenses/license-list.html



                     *1   http://www.dwheeler.com/essays/gpl-compatible.html
GPL汚染
   GPL汚染とは?
     GPLは再頒布物にGPLを適用することを強制するため、
      GPLのコードを1行でも含んでしまったソフトウェアは
      ソースコードを全て公開する必要がある
     現状では実質的にGPLのコードをビジネスに使うのは
      難しいということになっている
   GPLのコードをビジネスに使っている例
     RedHat*1
   GPLのコードをこっそり使っちゃった例
     ElecomルータGPL違反*2




                                                     *1 http://jp.redhat.com/
                         *2   http://slashdot.jp/story/04/06/23/0624231/
Multi Licensing (e.g. MySQL)

 マルチライセンシングとは複数種類の
  ライセンスで配布する手法
 利用者はどのライセンスを適用するか選べる
     (1つだけ選べる)


   MySQLのライセンス
     GPL
     Commercial License

     MySQLを内包したようなプログラムを配布するにはGPLとし
      て公開するかコマーシャルライセンスを購入する必要がある
     MySQLのライブラリを使用したソフトを配布する場合等は
      特に気にする必要無し*1

                           *1   http://www.mysql.gr.jp/
Creating OSS
 OSSとして公開する場合はOSI認定ライセンスの下で
  公開すると良い
 ライセンスの記載方法はOSIサイトにテンプレが
  あるのでそれを使う

   e.g. MITライセンスで公開する場合
     1. http://opensource.org/licenses/MIT にアクセス
     2. ライセンス記述用のテキストファイルやソースコードの
      ヘッダ部分等にテンプレの必要個所を埋めて貼り付ける
     3. ソースコードを添付してどこかしらにアップロードして公開する
      ○ githubやらbitbucketやら自分のサーバやら
Have fun coding!

Contenu connexe

Tendances

FLOSSとフリーカルチャーの流れ
FLOSSとフリーカルチャーの流れFLOSSとフリーカルチャーの流れ
FLOSSとフリーカルチャーの流れ
Tatsuki Sugiura
 

Tendances (20)

使ってみて気づいた AGPL ライセンスの メリット・デメリット
使ってみて気づいた AGPL ライセンスの メリット・デメリット使ってみて気づいた AGPL ライセンスの メリット・デメリット
使ってみて気づいた AGPL ライセンスの メリット・デメリット
 
ライセンスを理解してますか?知っておきたいWordPressとGPLライセンス
ライセンスを理解してますか?知っておきたいWordPressとGPLライセンスライセンスを理解してますか?知っておきたいWordPressとGPLライセンス
ライセンスを理解してますか?知っておきたいWordPressとGPLライセンス
 
オープンソースライセンスの基礎と実務
オープンソースライセンスの基礎と実務オープンソースライセンスの基礎と実務
オープンソースライセンスの基礎と実務
 
WordPress利用者のための、オープンソースライセンス基礎と実務
WordPress利用者のための、オープンソースライセンス基礎と実務WordPress利用者のための、オープンソースライセンス基礎と実務
WordPress利用者のための、オープンソースライセンス基礎と実務
 
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
 
080826 Extライセンスについて(第3回勉強会)Slideshare
080826 Extライセンスについて(第3回勉強会)Slideshare080826 Extライセンスについて(第3回勉強会)Slideshare
080826 Extライセンスについて(第3回勉強会)Slideshare
 
オープンデータで社会を変える - 国内外における事例とそのインパクトとは?
オープンデータで社会を変える - 国内外における事例とそのインパクトとは?オープンデータで社会を変える - 国内外における事例とそのインパクトとは?
オープンデータで社会を変える - 国内外における事例とそのインパクトとは?
 
Guide To AGPL
Guide To AGPLGuide To AGPL
Guide To AGPL
 
Soramame.Block 100行のJavaScriptで ビジュアルプログラミング言語(のフロントエンド)を作ってみた:
Soramame.Block 100行のJavaScriptで ビジュアルプログラミング言語(のフロントエンド)を作ってみた: Soramame.Block 100行のJavaScriptで ビジュアルプログラミング言語(のフロントエンド)を作ってみた:
Soramame.Block 100行のJavaScriptで ビジュアルプログラミング言語(のフロントエンド)を作ってみた:
 
FLOSSとフリーカルチャーの流れ
FLOSSとフリーカルチャーの流れFLOSSとフリーカルチャーの流れ
FLOSSとフリーカルチャーの流れ
 
GNU AGPLv3について(On GNU AGPLv3)
GNU AGPLv3について(On GNU AGPLv3)GNU AGPLv3について(On GNU AGPLv3)
GNU AGPLv3について(On GNU AGPLv3)
 
OSSライセンス入門
OSSライセンス入門OSSライセンス入門
OSSライセンス入門
 
Interoperability and Innovation Issues for Open Licenses
Interoperability and Innovation Issues for Open LicensesInteroperability and Innovation Issues for Open Licenses
Interoperability and Innovation Issues for Open Licenses
 
マイニング探検会#15
マイニング探検会#15マイニング探検会#15
マイニング探検会#15
 
オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識
オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識
オープンで行こう! オープンソース・ソフトウェアとオープンソース・コミュニティの基礎知識
 
Androidのリカバリシステム (Androidのシステムアップデート)
Androidのリカバリシステム (Androidのシステムアップデート)Androidのリカバリシステム (Androidのシステムアップデート)
Androidのリカバリシステム (Androidのシステムアップデート)
 
GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)
GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)
GTMF 2016:Perforce HelixによるGit環境の改善と拡張 株式会社東陽テクニカ(Perforce Helix)
 
「あなた」と オープンソース/フリーソフトウェア、 そして「Debian」
「あなた」と オープンソース/フリーソフトウェア、 そして「Debian」「あなた」と オープンソース/フリーソフトウェア、 そして「Debian」
「あなた」と オープンソース/フリーソフトウェア、 そして「Debian」
 
GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック
GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテックGTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック
GTMF 2016:「KiQ」が拓くゲームサーバの未来 株式会社アトミテック
 
Word pressを使うなら知っておきたいgpl
Word pressを使うなら知っておきたいgplWord pressを使うなら知っておきたいgpl
Word pressを使うなら知っておきたいgpl
 

Similaire à Software license

20120729 interop innov_tradeoff
20120729 interop innov_tradeoff20120729 interop innov_tradeoff
20120729 interop innov_tradeoff
Tomoaki Watanabe
 
20110823 sfc mediacenter_cc
20110823 sfc mediacenter_cc20110823 sfc mediacenter_cc
20110823 sfc mediacenter_cc
Tomoaki Watanabe
 
[OSC浜松2013]オープンソースライセンス研究所の概要と最新の動向(20130209)
[OSC浜松2013]オープンソースライセンス研究所の概要と最新の動向(20130209)[OSC浜松2013]オープンソースライセンス研究所の概要と最新の動向(20130209)
[OSC浜松2013]オープンソースライセンス研究所の概要と最新の動向(20130209)
Hitoshi Sugimoto
 

Similaire à Software license (19)

20090703課内oss研修
20090703課内oss研修 20090703課内oss研修
20090703課内oss研修
 
20120729 interop innov_tradeoff
20120729 interop innov_tradeoff20120729 interop innov_tradeoff
20120729 interop innov_tradeoff
 
How to use GPL software in closed source Android application
How to use GPL software in closed source Android applicationHow to use GPL software in closed source Android application
How to use GPL software in closed source Android application
 
ソフトウェアライセンス
ソフトウェアライセンスソフトウェアライセンス
ソフトウェアライセンス
 
オープンソースソフトウェアとDrupal
オープンソースソフトウェアとDrupalオープンソースソフトウェアとDrupal
オープンソースソフトウェアとDrupal
 
Open Licensing?
Open Licensing?Open Licensing?
Open Licensing?
 
OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理
 
Red Hat Enterprise Linux 7.1 Kubernetes入門
Red Hat Enterprise Linux 7.1 Kubernetes入門Red Hat Enterprise Linux 7.1 Kubernetes入門
Red Hat Enterprise Linux 7.1 Kubernetes入門
 
Openwrt
OpenwrtOpenwrt
Openwrt
 
エンタープライズソフトウェア開発とOSS
エンタープライズソフトウェア開発とOSSエンタープライズソフトウェア開発とOSS
エンタープライズソフトウェア開発とOSS
 
LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)
 
20230128.pptx
20230128.pptx20230128.pptx
20230128.pptx
 
20110823 sfc mediacenter_cc
20110823 sfc mediacenter_cc20110823 sfc mediacenter_cc
20110823 sfc mediacenter_cc
 
[OSC浜松2013]オープンソースライセンス研究所の概要と最新の動向(20130209)
[OSC浜松2013]オープンソースライセンス研究所の概要と最新の動向(20130209)[OSC浜松2013]オープンソースライセンス研究所の概要と最新の動向(20130209)
[OSC浜松2013]オープンソースライセンス研究所の概要と最新の動向(20130209)
 
ロボットシステム学2015年第6回
ロボットシステム学2015年第6回ロボットシステム学2015年第6回
ロボットシステム学2015年第6回
 
はじめてのMercurial/Bitbucket
はじめてのMercurial/BitbucketはじめてのMercurial/Bitbucket
はじめてのMercurial/Bitbucket
 
OpenModelica tutorials_1(超初級チュートリアル1 解析モデルの作成と実行)
OpenModelica tutorials_1(超初級チュートリアル1 解析モデルの作成と実行)OpenModelica tutorials_1(超初級チュートリアル1 解析モデルの作成と実行)
OpenModelica tutorials_1(超初級チュートリアル1 解析モデルの作成と実行)
 
インタラクションデザインにおけるオープンソース及びライセンスの役割Mizuno20121024
インタラクションデザインにおけるオープンソース及びライセンスの役割Mizuno20121024インタラクションデザインにおけるオープンソース及びライセンスの役割Mizuno20121024
インタラクションデザインにおけるオープンソース及びライセンスの役割Mizuno20121024
 
【de:code 2020】 あらゆるエンジニアを支援! VS Code Meetup の紹介とハンズオンで活躍するテクニック集
【de:code 2020】 あらゆるエンジニアを支援! VS Code Meetup の紹介とハンズオンで活躍するテクニック集【de:code 2020】 あらゆるエンジニアを支援! VS Code Meetup の紹介とハンズオンで活躍するテクニック集
【de:code 2020】 あらゆるエンジニアを支援! VS Code Meetup の紹介とハンズオンで活躍するテクニック集
 

Dernier

Dernier (12)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

Software license

  • 2. Copyright  Copyright = 著作権  著作権とは  著作権(ちょさくけん)とは、言語、音楽、絵画、建築、 図形、映画、写真、コンピュータプログラムなどの表現 形式によって自らの思想・感情を創作的に表現した者に 認められる、それらの創作物の利用を支配することを目 的とする権利をいう。-wikipedia引用  著作権は著作者に対して付不される財産権の一種であり、 著作者に対して、著作権の対象である著作物を排他的に 利用する権利を認めるものである。-wikipedia引用  著作権者は、他人に対し、その著作物の利用を許諾する ことができる。-著作権法第63条1項
  • 3. License  ライセンスとは  ライセンス(米: license、英: licence)は、それが存在 しなければ違法となる行為をすることを許可すること、 あるいはその許可を称する書面のことをいう。– wikipedia引用  運転免許証 → 持ってなければ車運転しちゃダメ  医師免許証 → 持ってなければ医業しちゃダメ  etc...
  • 4. Software License  ソフトウェアライセンスとは  ソフトウェアライセンス (software license) は、コン ピュータのソフトウェアについて、ソフトウェア利用者 が遵守すべき事項を記載した文書である。-wikipedia引 用  要するにソフトウェアの利用上やっていいこととダメな ことを書いたもの  ソースコードを公開している場合はソースコード のライセンスも含まれる  オープンソースライセンスが有名である
  • 5. Open Source License  GPL (2系,3系) - Linux Kernel (GPL2.0)  LGPL (2系,3系) - OpenOffice.org (LGPL3.0)  New BSD License - FreeBSD, PostgreSQL  Apache License - Apache HTTP Server  MIT License - X11, jQuery  etc....
  • 6. Open Source Software(OSS)  書いたソースを公開するだけで「オープンソー ス」というわけではない  オープンソースとはOSDに準拠していることを意 味する  すなわちオープンソースソフトウェアとはOSDに 準拠したライセンスの下で公開されているソフト ウェアのこと  OSD準拠のライセンス*1は OSI認定マークによって証明できる→ Open Source Initiative *1 http://opensource.org/licenses/alphabetical
  • 7. Open Source Definition(OSD)  1. 再頒布を許可すること  2. ソースコードの再頒布も許可すること  意図的にわかりづらくしたコードとかはダメ  3. 派生ソフトを同じライセンスでの頒布を許可すること  4. 派生ソフトの再頒布はパッチ形式を義務付けても良い 派生ソフトを別の名前で再頒布することを義務付けても良い  5. 個人(団体)への差別禁止  6. 利用分野への差別禁止  兵器利用は丌可とか制限できない  7. 再頒布時に別のライセンスの付加を求めてはいけない  8. 特定ソフトにおいてのみ有効なライセンスとしてはいけない  それが何かの一部であるとき、全体と一緒のときだけOSSとかはダメ  9. 共に頒布するソフトを制限してはいけない  こんなソフトと一緒に頒布したらダメ、とかいう制限はできない  10. 特定技術に依存したライセンスであってはならない  windows上で動かす場合のみOSSとかはダメ http://opensource.org/osd http://www.opensource.jp/osd/osd-japanese.html
  • 8. Redistributions 更に改良  再頒布とは? できるぞ この人から見て (Modified) Source Source Code Code 再頒布 Binary (Modified) Code Binary OSS OSS Code ですよ ですよ 便利だ!
  • 9. Redistributions  再頒布とは? 頒布→丌特定の人に配ること この人から見て 配布→特定の人に配ること Source Code 再頒布 Binary (Modified) Code Binary プロプラ Code OSS イエタリ ですよ ですよ 便利だ!
  • 10. Free Software?  フリーソフトウェアの定義*1  0. いかなる目的に対しても、プログラムを実行する自由  1. プログラムがどのように動作しているか研究し、必要 に応じて改造する自由  2. 身近な人を助けられるよう、コピーを再配布する自由  3. 改変した版を他に配布する自由 Proprietary Software  OSDとの違いは? フリーソフトウェアではないもの  思想がずれているようです*2  “Open source is a development methodology; free software is a social movement.”*3 *1 http://www.gnu.org/philosophy/free-sw.html *2 http://www.gnu.org/philosophy/open-source-misses-the-point.html *3http://www.gnu.org/philosophy/free-software-for-freedom.html
  • 11. Copy Left  FSF*1が提唱した著作権に対する考え方  コピーレフトの定義  著作物の利用、コピー、再配布、翻案を制限しない  改変したもの(二次的著作物)の再配布を制限しない  二次的著作物の利用、コピー、再配布、翻案を制限して はならない  コピー、再配布の際には、その後の利用と翻案に制限が 無いよう、全ての情報を含める必要がある(ソフトウェ アではソースコード含む)  翻案が制限されない反面、原著作物の二次的著作物にも 同一のコピーレフトのライセンスを適用し、これを明記 しなければならない -wikipedia引用 *1 Free Software Foundation
  • 13. New BSD License  BSDライセンスを修正したライセンス  頒布時にはソースコードやドキュメント等に Copyrightと本条件と無保証である旨の免責事項 を含めること  派生ソフトの広告に貢献者や団体の名前を許可 なく記述していい  以上の条件の下で改変の有無・形式を問わず 頒布してOK  URL先を見ると早い  http://opensource.org/licenses/BSD-3-Clause
  • 14. Original BSD License  修正される前のBSDライセンス  New BSD Licenseの “派生ソフトの広告に貢献者や団体の名前を 許可なく記述していい” が “派生ソフトの広告に貢献者や団体の名前を 記述すること” だった  広告が大量の貢献者の名前で埋め尽くされるので この条項を消した
  • 15. MIT License(X11 License)  MITで開発されたX11(X Window System)の 配布に使われているライセンス  内容はNew BSD Licenseと同じ  http://opensource.org/licenses/MIT  BSDライセンスはNewとOriginalを混同しやすい ため、MITライセンスを用いる人は多い
  • 16. Apache License 2.0  Apache HTTP Serverの配布に使われている ライセンス  内容はNew BSD Licenseとほぼ同じ  “無料の特許ライセンスを不えること”  “派生ソフト及びその広告にソフトの名前やト レードマークを勝手に使わないこと”  “変更箇所を変更したとわかるようにすること”  などが加えられている
  • 17. GPL 2.0  コピーレフトなライセンス  そのまま頒布する場合  著作権・本条件・免責事項を書く  派生ソフトを頒布する場合  変更点を明示する  同じライセンス(GPL2.0)で頒布する  プログラム実行時の対話的な部分で著作権・ライセンス 条項を表示する  バイナリコードを再頒布する場合  ソースコード(又はその入手方法)を添付する
  • 18. GPL 3.0  技術等の進歩に伴ってライセンスも更新した  用語の選別、他ライセンスとの互換性、 Tivo化 への対処、DRMへの対処、ライセンス違反時の対 処法、などを修正した  Tivo化  GPLであるにも関わらずハードウェアの制限によって ユーザの派生ソフトの作成を妨害するようなもの
  • 19. LGPL 2.1, 3.0  GPLに比べて自由を守る力が弱い(Lesser)ライ センス、限定的にコピーレフト  オープンソースなソフトウェアを利用して開発す るとき、自分のコードには制約は課されない  emacs, Eclipse等  しかしライブラリの場合は話は別、派生ソフトと みなされてしまう  jQuery, FuelPHP等(どちらもGPL系ではないが)  そのライブラリの動的リンクを派生ソフトとみな さないのがLGPL  lddコマンドで出るやつが動的リンクされてるもの
  • 20. Things Programmer needs to care about OSS
  • 21. OSS Use  個人的に使う(再頒布(再配布)しない)  基本的に使用方法は問われない  AGPLの場合に限り例外あり  ライブラリとして利用して作ったものを頒布する or 修正して頒布する or リンクして利用するものを頒布する  基本的に派生ソフトと見做され、コピーレフトであれば ソースコードの頒布も必要 ○ 配布であれば、配布対象者へのコードの配布でOK
  • 22. License Compatibility  2つのソフトを組み合わせる時に、両者のライセンスに 互換性があるかどうか  GPL互換性  特にGPLとの互換性があるかないかが重要*1  GPLコードの含まれるコードは全てGPLになる ○ GPLが許していることを禁止しているライセンスとは 互換性がない ○ e.g. Apache License x GPL2.0は非互換(特許権停止について)  GPL互換性リスト  http://www.gnu.org/licenses/license-list.html *1 http://www.dwheeler.com/essays/gpl-compatible.html
  • 23. GPL汚染  GPL汚染とは?  GPLは再頒布物にGPLを適用することを強制するため、 GPLのコードを1行でも含んでしまったソフトウェアは ソースコードを全て公開する必要がある  現状では実質的にGPLのコードをビジネスに使うのは 難しいということになっている  GPLのコードをビジネスに使っている例  RedHat*1  GPLのコードをこっそり使っちゃった例  ElecomルータGPL違反*2 *1 http://jp.redhat.com/ *2 http://slashdot.jp/story/04/06/23/0624231/
  • 24. Multi Licensing (e.g. MySQL)  マルチライセンシングとは複数種類の ライセンスで配布する手法  利用者はどのライセンスを適用するか選べる  (1つだけ選べる)  MySQLのライセンス  GPL  Commercial License  MySQLを内包したようなプログラムを配布するにはGPLとし て公開するかコマーシャルライセンスを購入する必要がある  MySQLのライブラリを使用したソフトを配布する場合等は 特に気にする必要無し*1 *1 http://www.mysql.gr.jp/
  • 25. Creating OSS  OSSとして公開する場合はOSI認定ライセンスの下で 公開すると良い  ライセンスの記載方法はOSIサイトにテンプレが あるのでそれを使う  e.g. MITライセンスで公開する場合  1. http://opensource.org/licenses/MIT にアクセス  2. ライセンス記述用のテキストファイルやソースコードの ヘッダ部分等にテンプレの必要個所を埋めて貼り付ける  3. ソースコードを添付してどこかしらにアップロードして公開する ○ githubやらbitbucketやら自分のサーバやら