SlideShare una empresa de Scribd logo
1 de 34
Descargar para leer sin conexión
オープンソースソフトウェアラ
イセンスについて
1. オープンソースとは
2. オープンソースライセンスの種類
3. GPL・LGPL・MIT等の違い
4. まとめ
5. 参考文献
アジェンダ
1. ・ソースコードが公開されている
2. ・ソースコードを利用・複写・改変・再配布できる
3. ・使用するには開発者により定められた条件(ライセンス)に
従う必要がある
1、オープンソースとは
・ライセンスは開発者が自由に作成できる。
 ↓
ライセンスは無数に存在
1、オープンソースとは
Apache v2 GPL MIT BSD
LGPL No License LGPL v2.1 GPL v2
現代のほとんどのライセンスは「コピーレフト」と呼ばれる概念に
基づいて、三つに分けられている。
2、オープンソースライセンスの種類
2、コピーレフトとは
著作者が著作物に対する権利(著作権)を保有したまま著作物の配布条件として、利
者に著作物を複写・改変・再配布する 由を与える で、派生物(二次的著作物)
の配布者に対しても、全く同じ条件で派生物を配布することを義務づけるといった考
え方のこと。
→ライセンスの継承を要求するライセンス形式
・オープンソースを商用利用する企業は技術を閉じ込めてしま
いがちだが、それをさせなくすることができる
・誰でも改変できることで、開発の継続性が確保されやすい
2、コピーレフトのメリット
2、コピーレフトの種類
コピーレフトを適用する範囲によって、下記に分けられる
・コピーレフト型
・準コピーレフト型
・非コピーレフト型
2、コピーレフトの種類
改変部分のソースコードの
開示が必要
リンクして使う、他のソフトウェアの
ソースコード開示が必要 (詳細後述)
コピーレフト型
例:GPL ◯ ◯
準コピーレフト型
例:LGPL ◯ ×
非コピーレフト型
例:BSD/MIT × ×
1. GNU General Public License (GPL) 2.0 25%
2. MIT License 19%
3. Apache License 2.0 16%
4. GNU General Public License (GPL) 3.0 10%
5. BSD License 2.0 (3-clause, New or Revised) License 7%
6. Artistic License (Perl) 5%
7. GNU Lesser General Public License (LGPL) 2.1 5%
8. GNU Lesser General Public License (LGPL) 3.0 2%
9. http://www.opensource.org/licenses/ms-pl 2%
10. Eclipse Public License (EPL) 2%
https://www.blackducksoftware.com/resources/data/top-20-open-source-licenses
3、ライセンスの割合
一番緩いライセンス。必須事項は下記の2つのみ
1. 著作権の表示
2. 無保証
3、MIT / BSD / Apache LicenseV2.0
※類似のライセンス
修正BSD、Apache License v1.1, v2.0
その他:http://ftp.heanet.ie/disk1/www.gnu.org/licenses/license-list.ja.html
・著作権さえ残せば改変自由。好きにつかってよし。
・ただし利用に際して起こった損害等について著作権者は一切保証しませんよ、とい
うライセンス
→このライセンスのライブラリなら使用して大丈夫
 ※ただし著作権表示消さないように
3、MIT / BSD / Apache LicenseV2.0
・著作権の表示
  原則としてソースコードに含める必要がある
3、MIT / BSD / Apache LicenseV2.0
例:JQuery
3、GPL(GNU General Public License)
現在世界で最も多く使われているオープンソースライセンス形式。
1. 著作権の表示
2. 無保証
3. GPLライセンスの継承(ソースコードの公開含む)
よくある疑問:
・このライセンスのライブラリやソフトウェアは商用
に使っても問題ないのか?
3、GPL(GNU General Public License)
3、GPL(GNU General Public License)
・使い方があってれば大丈夫
しかし意図せずこのライセンスが使われていると後でソースコード全公開になるケー
スがあります。
▪ GPL違反の例
ソニー・コンピュータエンタテインメントのプレイステーション2用ゲーム『ICO』にGPLライセンスのライブラリ「libarc」の使用が発
見され議論に
http://japanese.engadget.com/2007/11/29/ico-gpl/
・使用にあたってはどのような場合にソースの開示を要求されるのかを認識しておくことが必要になります。
※よくある勘違いですが、GPLは商用には一切使えないという
ことはありません
3、GPL(GNU General Public License)
・例:MySQL
→GPL汚染なし
プロセス間通信はGPLに触れないとされています。
その為、Webサーバのバックエンドなどで動かす場合には商用に利用したとしてもソースを公開する義務は
一切ありません。
・配布する製品の一部に GPLの製品を含めた場合にのみその製品に GPLが適用されます。
・どのような含め方が GPL汚染につながるのかは裁判官次第
(GNU FAQ 該当箇所)
http://www.gnu.org/licenses/gpl-faq.ja.html#MereAggregation
3、GPL(GNU General Public License)
3、GPL(GNU General Public License)
・例:ネイティブアプリのライブラリにGPLを組み込む場合
→GPL汚染
Google PlayやApp Storeでアプリとして公開するとして、その開発に GPLライブラリを使っていた場合。
これはバイナリに含められることで起動の際に必要とされる為、公開したアプリのソースにも基本的に GPL
の制約がかかります。
例外:AndroidのIntentやスキーマによる起動など、アプリのバイナリに含めない状態でライブラリを使用す
る場合はGPL汚染なし
・例:WebサイトのページにGPLのJSライブラリを組み込む
→GPL汚染なし
・もともとサイト上のHtmlソースは公開されている
・サーバーサイドのソースは別プロセス
・Node.jsに組み込むなら多分汚染あり
3、GPL(GNU General Public License)
・例:社内専用システムに組み込む場合
→GPL汚染なし
・GPLによるソースコードの公開義務が発生するのはあくまで外部に配布・公開するときのみ
・これに使われたソースを外部に提供する、などの場合は GPLが適用される
3、GPL(GNU General Public License)
3、GPLの境界線
・プロセスが同じかどうか
例えば、Mac OS X ServerにはGPLライセンスのMySQLがバンドルされているが、 Mac OS X Server自
体はGPLにはなっていない
→下記を行うとGPL汚染にかかるとされている。
・元のGPLソフトウェアを改造
・GPLのライブラリをリンク
※プロセス間通信が非常に緊密な場合には結合プロセスとする、という見解もある
※あくまで目安です
(GNU FAQ 該当箇所)
http://www.gnu.org/licenses/gpl-faq.ja.html#MereAggregation
3、LGPL(GNU Lesser General Public License)
・GPLを少し緩くした準コピーレフト型ライセンス
・利用の仕方によって、ライセンスの継承は必要ない場合があ
る
・GPLとの違い
→
・ライブラリの派生著作物
・ライブラリを利用する著作物
か、で制限が違う
(条文)LGPL v2.1:5条
「『ライブラリ』を利用する著作物」に『ライブラリ』をリンクして実行形式を作成すると、それは「『ライブラリ』を利用する著作物」ではなく、『ライブラリ』の派生物となる(なぜな
らそれは『ライブラリ』の一部を含んでいるから)。そこで、実行形式はこのライセンスで保護される。
3、LGPL(GNU Lesser General Public License)
・ライブラリの派生著作物
→LGPLライセンスの継承が必要
ソースコードの公開が必要
(条文)LGPL v2.1:2条
あなたは自分の『ライブラリ』の複製物かその一部を改変して『ライブラリ』 を基にした著作物を形成し、そのような改変点や著作物を上記第1節の定める条件の下で複製
または頒布することができる。ただし、そのためには以下の条件すべてを満たしていなければならない:
c) あなたはいかなる第三者に対しても、著作物全体をこの契約書の定める条件に従って利用することを無償で許可しなければならない。
3、LGPL(GNU Lesser General Public License)
・ライブラリを利用する著作物
→継承必要なし
ソースコードの公開も必要なし
※ただしリバースエンジニアリング を許可しなければならない
(条文)LGPL v2.1:6条
上記各節の例外として、あなたは「『ライブラリ』を利用する著作物」を『ライブラリ』と結合またはリンクして、『ライブラリ』の一部を含む著作物を作成し、その著作物をあな
たが選んだ条件の下で頒布することもできる。ただし その場合、あなたの条件は顧客自身の利用のための著作物の改変を許可し、またそのような改変をデバッグするた
めのリバースエンジニアリングを許可していなければならない。
3、LGPL(GNU Lesser General Public License)
・派生著作物か、利用しているだけかの見分け方
→動的リンクで、かつコンピュータに存在するライブラリを利用する場合は派生著作物にはならない
(GNU FAQ)GNUライセンスに関してよく聞かれる質問
(2) ユーザのコンピュータに既に存在するLGPLのライブラリに対し動的にリンクする場合、あなたは、ライブラリのソースを運搬する必要はありません。一方、あなたのア
プリケーションと一緒にLGPLのライブラリの実行形式をあなた自身が運搬する場合、それが静的、あるいは動的にリンクされているかによらず、LGPLが提供する方法の
一つでライブラリのソースを運搬する必要があります。
3、LGPL(GNU Lesser General Public License)
・動的リンクの定義
基本的な動的リンクの定義はリンクされるライブラリが実行ファイルと別ファイルかどうかで見分けられる。
財団法人経済産業調査会の記事
http://www.ogis-ri.co.jp/product/download/palamida/UsingOSS_Vol4.pdf
静的リンクとは、プログラムそれ自身にあるライブラリを「繋ぎあわせ」、一つのファイルとして実行可能な形式のバイナリにすることである。一方、動的リンクとはプログラ
ムの実行時に初めて他のモジュールやライブラリと結合(呼び出し)する方式である。動的リンクの場連載企画:オープンソースソフトウェアを利用した製品開発の現状と課
題2/8 Copyright(C) 2011 OGIS-RI All rights reserved.合は基本的には実行プログラムと、呼び出す先のライブラリは別のファイルである。一般的に動的リンクの方
が汎用性が高く、実行可能形式のプログラムのサイズを小さく出来るという利点がある。しかし、ライブラリを呼び出す際に必要なモジュールがなければ、そのプログラム
は動かないという欠点もある。平たく言えば関連するソフトウェアを一つのファイルとして結合したものが静的リンク、物理的には結合しないがプログラム動作時には呼び
出すことができる状態になっているものを動的リンクと呼ぶ
3、LGPL(GNU Lesser General Public License)
・商用利用
→
・ライブラリの派生著作物
・ライブラリを利用する著作物
どちらもソースコードが解析・逆コンパイルされる可能性がある
ので、避けた方が無難
3、LGPL(GNU Lesser General Public License)
・商用利用
ただし、GPLと同じくライブラリとしてリンクしていなければ大丈夫。
仮に、Webサーバのソースが「ライブラリを利用する著作物」だとしても、バイナリを
配布したりしていないのでほぼリバースエンジニアリングなどはできないと思います。
ネイティブアプリ等はバイナリ配布するので解析される恐れがあり
3、LGPL(GNU Lesser General Public License)
・ネイティブアプリのプロジェクト内にGPL、LGPLを使うと後々大問題になりそう
・サーバサイドなどに使うライブラリなら検討の余地あり
・ライセンスの明記されていないライブラリは気をつけましょう
※今回の内容は自分の解釈なので、違うなと思ったら各条文・日本の法律を見て下さい
4、まとめ
・GIFの特許問題
2004年6月20日までGIF画像を作成したり表示したりする際には、Unisys社の特許技術が必要なため、例えば下記のような行
為が禁止されていました。
・非ライセンスソフトを用いてGIF画像を作成し、公開する。
・非ライセンスソフトを用いて作成されたGIF画像を入手し、公開する。
・非ライセンスのライブラリを用いたGIF画像作成・表示ソフトを開発・公開する。
フリーソフトでGIF生成ツールなどを使うと、特許違反で後からライセンス料を支払わされるなどのケースがあったようです。
http://www.tohoho-web.com/wwwxx051.htm
4、おまけ
4、おまけ
・オープンソースソフトウェア検出ツールというのもあるそうです
価格は検査対象ファイルが 50Mバイト以下,5ユーザーの場合で 378万円など。高い(2006年の記事)
http://itpro.nikkeibp.co.jp/article/NEWS/20060130/228129/
▪ 各ライセンス原文訳
・GPLv3 非公式日本語訳(※日本語訳は公式がないです )
http://sourceforge.jp/projects/opensource/wiki/licenses%252FGNU_General_Public_License_version_3.0
・GPLv2 非公式日本語訳
http://sourceforge.jp/projects/opensource/wiki/licenses%2FGNU_General_Public_License
・LGPLv3 非公式日本語訳
http://sourceforge.jp/projects/opensource/wiki/licenses%2FGNU_Lesser_General_Public_License_version_3.0
・LGPLv2.1 非公式日本語訳
http://sourceforge.jp/projects/opensource/wiki/licenses%2FGNU_Library_or_Lesser_General_Public_License
▪ 解釈まとめ
・OSS ライセンスの 較および利 動向ならびに 係争に関する調査
http://ossipedia.ipa.go.jp/nfs/pdf_pub/1005/203/194/194.pdf
・財団法人経済産業調査会記事: OSS ライセンスの特徴とその解釈の違いから発生する諸問題
http://www.ogis-ri.co.jp/product/download/palamida/UsingOSS_Vol4.pdf
5、参考文献

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることGraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
 
RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
Gocon2017:Goのロギング周りの考察
Gocon2017:Goのロギング周りの考察Gocon2017:Goのロギング周りの考察
Gocon2017:Goのロギング周りの考察
 
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめトランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
 
エラーハンドリング
エラーハンドリングエラーハンドリング
エラーハンドリング
 
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
 
What's new in Spring Boot 2.6 ?
What's new in Spring Boot 2.6 ?What's new in Spring Boot 2.6 ?
What's new in Spring Boot 2.6 ?
 
Java8でRDBMS作ったよ
Java8でRDBMS作ったよJava8でRDBMS作ったよ
Java8でRDBMS作ったよ
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
OSIの定義に基づくOSSライセンスの特徴分類 と現場での課題との関連に関する検討_OSC2015浜名湖_20150211
OSIの定義に基づくOSSライセンスの特徴分類 と現場での課題との関連に関する検討_OSC2015浜名湖_20150211OSIの定義に基づくOSSライセンスの特徴分類 と現場での課題との関連に関する検討_OSC2015浜名湖_20150211
OSIの定義に基づくOSSライセンスの特徴分類 と現場での課題との関連に関する検討_OSC2015浜名湖_20150211
 
Keycloak入門-OpenID ConnectによるAPIセキュリティ
Keycloak入門-OpenID ConnectによるAPIセキュリティKeycloak入門-OpenID ConnectによるAPIセキュリティ
Keycloak入門-OpenID ConnectによるAPIセキュリティ
 

Similar a 2015 03 26 社内勉強会_オープンソースソフトウェアライセンスについて

たまにはライセンスの話をしよう 20110211
たまにはライセンスの話をしよう 20110211たまにはライセンスの話をしよう 20110211
たまにはライセンスの話をしよう 20110211
Yutaka Kachi
 
FLOSSとフリーカルチャーの流れ
FLOSSとフリーカルチャーの流れFLOSSとフリーカルチャーの流れ
FLOSSとフリーカルチャーの流れ
Tatsuki Sugiura
 
「オープンソース」と「ライセンス」
「オープンソース」と「ライセンス」「オープンソース」と「ライセンス」
「オープンソース」と「ライセンス」
Jun Nogata
 
20120729 interop innov_tradeoff
20120729 interop innov_tradeoff20120729 interop innov_tradeoff
20120729 interop innov_tradeoff
Tomoaki Watanabe
 
名古屋エンジニア勉強会02
名古屋エンジニア勉強会02名古屋エンジニア勉強会02
名古屋エンジニア勉強会02
Hiroshi Tanaka
 
20110823 sfc mediacenter_cc
20110823 sfc mediacenter_cc20110823 sfc mediacenter_cc
20110823 sfc mediacenter_cc
Tomoaki Watanabe
 

Similar a 2015 03 26 社内勉強会_オープンソースソフトウェアライセンスについて (20)

Software license
Software licenseSoftware license
Software license
 
ソフトウェアライセンス
ソフトウェアライセンスソフトウェアライセンス
ソフトウェアライセンス
 
たまにはライセンスの話をしよう 20110211
たまにはライセンスの話をしよう 20110211たまにはライセンスの話をしよう 20110211
たまにはライセンスの話をしよう 20110211
 
ライセンスを理解してますか?知っておきたいWordPressとGPLライセンス
ライセンスを理解してますか?知っておきたいWordPressとGPLライセンスライセンスを理解してますか?知っておきたいWordPressとGPLライセンス
ライセンスを理解してますか?知っておきたいWordPressとGPLライセンス
 
(旧版) オープンソースライセンスの基礎と実務
(旧版) オープンソースライセンスの基礎と実務(旧版) オープンソースライセンスの基礎と実務
(旧版) オープンソースライセンスの基礎と実務
 
マイニング探検会#15
マイニング探検会#15マイニング探検会#15
マイニング探検会#15
 
FLOSSとフリーカルチャーの流れ
FLOSSとフリーカルチャーの流れFLOSSとフリーカルチャーの流れ
FLOSSとフリーカルチャーの流れ
 
たぶん45分くらいでわかる、オープンソースの世界
たぶん45分くらいでわかる、オープンソースの世界たぶん45分くらいでわかる、オープンソースの世界
たぶん45分くらいでわかる、オープンソースの世界
 
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
 
「オープンソース」と「ライセンス」
「オープンソース」と「ライセンス」「オープンソース」と「ライセンス」
「オープンソース」と「ライセンス」
 
ソフトウェアの権利とOSS,CC
ソフトウェアの権利とOSS,CCソフトウェアの権利とOSS,CC
ソフトウェアの権利とOSS,CC
 
20090703課内oss研修
20090703課内oss研修 20090703課内oss研修
20090703課内oss研修
 
Word pressを使うなら知っておきたいgpl
Word pressを使うなら知っておきたいgplWord pressを使うなら知っておきたいgpl
Word pressを使うなら知っておきたいgpl
 
080826 Extライセンスについて(第3回勉強会)Slideshare
080826 Extライセンスについて(第3回勉強会)Slideshare080826 Extライセンスについて(第3回勉強会)Slideshare
080826 Extライセンスについて(第3回勉強会)Slideshare
 
20120729 interop innov_tradeoff
20120729 interop innov_tradeoff20120729 interop innov_tradeoff
20120729 interop innov_tradeoff
 
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
 
名古屋エンジニア勉強会02
名古屋エンジニア勉強会02名古屋エンジニア勉強会02
名古屋エンジニア勉強会02
 
オープンソースソフトウェアとDrupal
オープンソースソフトウェアとDrupalオープンソースソフトウェアとDrupal
オープンソースソフトウェアとDrupal
 
20110823 sfc mediacenter_cc
20110823 sfc mediacenter_cc20110823 sfc mediacenter_cc
20110823 sfc mediacenter_cc
 
Androidアプリとオープンソースライブラリについて(OSC2013福岡LT)
Androidアプリとオープンソースライブラリについて(OSC2013福岡LT)Androidアプリとオープンソースライブラリについて(OSC2013福岡LT)
Androidアプリとオープンソースライブラリについて(OSC2013福岡LT)
 

Más de Natsuki Yamanaka

Más de Natsuki Yamanaka (11)

【2018/09/11】PAYでのReact Nativeにおける APIクライアント実装 について
【2018/09/11】PAYでのReact Nativeにおける APIクライアント実装 について【2018/09/11】PAYでのReact Nativeにおける APIクライアント実装 について
【2018/09/11】PAYでのReact Nativeにおける APIクライアント実装 について
 
2015 12 03_uiテストツールについて
2015 12 03_uiテストツールについて2015 12 03_uiテストツールについて
2015 12 03_uiテストツールについて
 
アプリ申請の基礎 リジェクト周り
アプリ申請の基礎 リジェクト周りアプリ申請の基礎 リジェクト周り
アプリ申請の基礎 リジェクト周り
 
開発Tips集
開発Tips集開発Tips集
開発Tips集
 
3 d touchについて
3 d touchについて3 d touchについて
3 d touchについて
 
多言語対応について 2016 07_25
多言語対応について 2016 07_25多言語対応について 2016 07_25
多言語対応について 2016 07_25
 
2015 12 10_ipv6対応について
2015 12 10_ipv6対応について2015 12 10_ipv6対応について
2015 12 10_ipv6対応について
 
2015 11 05_ios9_新仕様まとめ_社内勉強会
2015 11 05_ios9_新仕様まとめ_社内勉強会2015 11 05_ios9_新仕様まとめ_社内勉強会
2015 11 05_ios9_新仕様まとめ_社内勉強会
 
社内勉強会にて 音声ファイルフォーマットについて
社内勉強会にて 音声ファイルフォーマットについて社内勉強会にて 音声ファイルフォーマットについて
社内勉強会にて 音声ファイルフォーマットについて
 
スマホ(Android・iPhone)でWebRTC
スマホ(Android・iPhone)でWebRTCスマホ(Android・iPhone)でWebRTC
スマホ(Android・iPhone)でWebRTC
 
Nodeについて
NodeについてNodeについて
Nodeについて
 

2015 03 26 社内勉強会_オープンソースソフトウェアライセンスについて