OSS : OSSライセンスを知る(注意点・危険性)

この記事は約9分で読めます。

OSS 使ってますか?

みなさん、プログラミングしていると、必ずどこかで OSS を使っていると思います。

私自身、なんとなくしか知らなかったので、勉強がてら調査しました。

 

今回は、なんとなく使っているであろうOSSについて、

注意点

にフォーカスを当ててまとめました

 

OSS実は落とし穴が多かったりするので、

是非みていってください!

プログラミング独学には Udemy が良い (オススメ動画あり)
プログラミング独学で学びたい!けどどう学べばいいかわからないし、プログラミングスクールは高いし、 と考えている人にオススメ!『Udemy』の体験記!オススメの動画も最後にまとめています!是非使ってみてください!

OSS とは

OSS(Open Source Software:オープンソースソフトウェア)とは,

用者の目的を問わずソースコードを使用、調査、再利用、修正、拡張、再配布が可能なソフトウェアの総称です。

OSSのメリットは主に以下があります。

  • 実装コストが少なくなる
  • メンテナンスの負荷を少なくなる
  • リリース期間を短縮することができる

OSS開発者は「自分の書いたソースコードを公開して誰かの役とう」という気持ちで開発しています。自分が書いたコードが有名なプロダクトに使われていたら嬉しいですよね!!

OSS開発者の現状

Githubみなさん作ったことありますか?かなりのOSSはGithub上でプログラムコードを公開していると思います。

しかし、専門家曰く、

「Githubのプロジェクトのうち、約半分が著作権ライセンスを含んでいない、約30%はソースコードになんらかの種類のライセンス情報を含み、残りの約20%のみ明確なライセンスを記載していた」

そうです。

参考文献

 

企業は正しくOSSを理解しているか

2018年にコンサルティング会社が、企業のプロダクトを調査した結果,

コードベースの約68%

にライセンス違反の問題があるコンポーネントが含まれていました。

また、

ライセンス記載なしのコンポーネントは38%

もありました。

参考文献

 

OSSライセンスとは

ソフトウェアやそのソースコード、ブループリント、設計書の利用、修正、頒布を認めるソフトウェアライセンスの総称で、

簡単に言うと

開発者に許可なくOSSを利用するかを明記したもの

です。

それでは、特に使われているライセンスについて確認していきます。

The MIT License (MIT)

これは、一番OSSで多いです。

Copyright <YEAR> <COPYRIGHT HOLDER>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

 

まとめると、

  • 誰でも無償で無制限に使って良い
  • 著作権表示を全ての複製または、重要な部分に記載しておく必要がある
  • 免責事項を明記する
  • ライセンス表示を明記する

2つ目は特に抜かれやすいですが、重要です。

例)アプリのライセンス情報 等に書かれています。

Apache License 2.0

MITはとても制限が緩々でした。

逆に、企業にとっては、特許とか商標とかに関しての記述が全くないため、使いにくいという問題がありました。

そこで使われるのがこのApache Licenseです。

特許や商標の利用等に関しての説明や制限がかけられており、企業にとってより使いやすくなりました。

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
  • ユーザーにそのソフトウェアにApache Licenseのコードが使われていることを知らせる文言を入れることだけである。
  • 作者から利用者への特許権の許可が与えられる。
  • ライセンスされたファイルそれぞれに元々ある著作権と特許権の記述は
    そのまま保持しなければならない。
  • 修正が施されている場合は、変更箇所を明示しなければならない。
  • 作者の名前や製品名、ロゴやトレードマークの使用禁止

GNU General Public License version2(GPL-2.0)

これがまた厄介です。いわゆるコピーレフトです。

Copyright (C) 1989 xxxx

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

 

 

  • 誰でも無償で無制限に使って良い
  • 免責事項を明記する
  • ライセンス表示を明記する
  • 配布する場合
    • Copyleft
    • 修正箇所の明記
    • 対話的実行の場合(repl)実行時に著作権や免責事項の表示

 

このCopyleftがとても厄介なんです。

Copyleftとは

派生したソフトウェアも同じライセンスにすること

  • ソースコードに手を加える
  • 他のプログラムに追加する

Copyleftの問題

配布する場合

  • 開発コードをGPLでライセンスする必要あり
  • 他のOSSを組み合わせる場合、両立するライセンスである必要あり

 

これにより、

開発コードを公開する事になる著作権者から訴訟を起こされる可能性がある

Copyleftの例外

  • サーバーサイドでの利用
  • 組織内での利用
  • GPLライセンスのOSSによる出力(gccでコンパイルされたバイナリ等)
  • OSSが独立した形で入っているだけ

 

かなりややこしいですね

 

GNU Affelo General Public License version 3(AGPL-3.0)

GPL-2.0の機能に加えて、

ネットワーク上で動作するソフトウェアについても適応します

 

著作権での問題

2007年 – 日本

ソニーから発売されたPS2ソフト「ICO」をリバースエンジニアリングした開発者から、GPLライセンス違反が報告され、

その後、生産終了と廃盤が決定された

2013年 – アメリカ テスラ

まさかの、スペースXで有名なあのテスラも、GPL違反を起こしています。

Tesla Model Sの搭載システムがGPL違反とされ、著作権者からソースコードの公開を要求されました。

 

結局2013年に要求されてから、

2018年の5月に 利用OSSの一部をGihubに公開しました。

ただ、5年も経っているので、既に他の技術で置き換えられていると思います。

かなり、著作権は重要ですよね。

参考文献

おすすめOSS確認する方法

既にOSS開発を行なっている場合、どこかで違反をしているOSSを使ってしまっているかもしれません。

確認方法としておすすめなのが、

Source Clearです。

これはGithubとも連携できるので、マージ前に、source clearで確認する手段はとても有用だと思います。

まとめ

今回は、OSSの概要から、注意点、危険性について学びました。

フリーランスや会社でプログラミングをしているときはライセンスに気をつけながら開発していきましょう!

僕も気をつけていきます!

それでは。

 

[Go]Go言語入門~Twitter Botを作ってみよう~

タイトルとURLをコピーしました