LinuC-1 - 102試験 - 1.11:オープンソースの文化 - 1.11.1 オープンソースの概念とライセンス

Last Update : January 11 2021 23:19:22

     

a. オープンソース

オープンソースとは、 プログラムのソースコードを無償で公開し、 商用・非商用の目的を問わず、ソースコードの改良や再配布の自由を認める姿勢や概念のことである。

ただし、利用条件や制約、利用者の義務などが一切ないわけではなく、「オープンソースライセンス」(open source license)と総称される利用許諾契約に基いて公開されるのが普通である。非営利団体のOpen Source Initiative(OSI)が「Open Source Definition」(OSD:オープンソースの定義)と呼ばれる10箇条から成るガイドラインを発行しており、一般的にはこれを満たしたものがオープンソースライセンスとされる。著名なライセンスにはGPL(GNUパブリックライセンス)やBSDライセンス、Apacheライセンス、MITライセンス、MPL(Mozillaパブリックライセンス)などがある。

オープンソースの定義

  1. 再頒布の自由
    ライセンスは、ソフトウェア頒布物を販売または無料で頒布することを制限してはなりません。
  2. ソースコードの添付
    配布するプログラムにはソースコードを含まなければなりません。又はソースコードを手に入れる方法を公表し、複製に要する妥当な額のコストで入手出来なければなりません。また、難読化した状態や、中間形式では認められません。
  3. 派生ソフトウェア
    ライセンスは、改変した派生ソフトウェアの作成及び、元と同じライセンスの下での頒布を許可しなければなりません。
  4. 作者のソースコードの完全性(integrity)
    この項目の目的は「作者(オリジナルの作者)の書いたソースコードが、その後に改変されるソースコードと明確に見分けられるようにする権利」を認めることです。その手段として、
    (1) オリジナルの改変物の再頒布を拒否するかわりに、オリジナルのソースコード + バッチファイルでの頒布を許可する。
    (2) オリジナルの改変したものの再頒布を許可するかわりに、改変物の名前・バージョンを変更することを強制する。
    この2つのどちらかを、改変者に対して選ばせることが出来るというものです。作者が選べるわけではない。
  5. 個人やグループに対する差別の禁止
    ライセンスは特定の個人やグループを差別してはなりません。
  6. 利用する分野(fields of endeavor)に対する差別の禁止
    ライセンスはある特定の分野でプログラムを使うことを制限してはなりません。 例えば、プログラムの企業での使用や、遺伝子研究の分野での使用を制限してはいけません。
  7. ライセンスの分配(distribution)
    プログラムに付随する権利は、そのプログラムが再頒布された者全てに等しく認められなければならず、彼らが何らかの追加のライセンスに同意することを必要としてはなりません。例えば機密保持契約への同意を要求するなどして、間接的に囲い込んだりしてはいけません。
  8. 特定製品でのみ有効なライセンスの禁止
    プログラムに付与された権利は、それが他のあるソフトウェア頒布物の一部であることに依存するものであってはいけません。例えば、「ある製品の一部である時にオープンソースライセンスが有効化される」などといった条項で囲い込んではいけません。オープンソースなソフトウェアは、他の製品に組み込まれていようがいまいが、オープンソースなソフトウェアとして利用可能です。
  9. 他のソフトウェアを制限するライセンスの禁止
    例えば、ライセンスは同じ媒体で頒布される他のプログラムが全てオープンソースソフトウェアであることを要求してはなりません。
  10. ライセンスは技術的中立でなければならない
    例えば、ライセンスは利用時に「同意します」ボタンを作ることを要求してはいけません。これでは、「同意します」ボタンが作成出来ない環境において、頒布することが出来なくなってしまいます。


b. コピーレフト

「コピーレフト」とは、「著作者が著作物に対する権利(著作権)を保有したまま著作物の配布条件として、利用者に著作物を複写・改変・再配布する自由を与える」という考え方です。
 一方、複写・改変・再配布された派生物(二次的著作物)の配布者に対しても、まったく同じ条件で派生物を配布することを義務付けています。
 つまり、「コピーレフト」は、著作物が配布され続けるかぎり、制限なく適用され続ける特徴があります。


c. オープンソースライセンスの3つの分類
  1. コピーレフト型
    代表的なライセンス:GPL(GNU General Public License version2、version3)

    WordPressやLinuxで採用されており、3つのオープンソースライセンスのなかで制限が最も厳しい考え方で、以下のような規定があります。

    • 著作権表示を保持する
    • 無保証
    • 誰でも自由に複製、改変、配布することができる
    • GPLライセンスを使用した場合は、その制作物もGPLライセンスで配布する

    GPLは組み込み開発の現場ではよく利用されているライセンスで、OSSライセンスのなかで最も割合が大きいライセンスです。コピーレフト型ライセンスにはGPLのほか、AGPL(GNU Affero General Public License version 3)やSleepycat Licenseがあります。
    GPLは派生したソフトウェアにもGPLライセンスであることを求めるため、GPLのソースが1行でもコードに混入した場合、そのソースはすべてGPLとして公開する義務が発生します。
    これは、GPLが適用されているOSSの権利を保護するためになくてはならない規約ですが、一度GPLとなった場合、あとからライセンスを変更することはほぼ不可能なので、ソースの制限の追加に大きな制約が発生します。

  2. 準コピーレフト型
    代表的なライセンス:MPL(Mozilla Public License)

    FirefoxやThunderbirdなどのMozillaソフトで採用されている、コピーレフト型から制限を緩めたライセンスです。

    • 再配布の際には著作権表示を残す
    • 派生ソフトウェアまでは同じライセンスの適用をおこなう
    • OSSをほかのソフトウェアと組み合わせた場合、組み合わせ先のソフトウェアまではライセンスの適用を要求しない

    このため、コピーレフトを有しながらも、伝播性は弱くなっています。

  3. 非コピーレフト型
    代表的なライセンス:BSD License

    最も有名な非コピーレフト型ライセンスは、カリフォルニア州立バークレイ大学によって作成されたBSDライセンスで、特徴は以下の2点です。

    • 派生物にまで同じライセンスの適用を要求しない
    • ほかのプログラムと組み合わせた場合も、組み合わせ先のソフトウェアにまで同じライセンスの適用を要求しない

この特徴によって、OSSを利用した派生物を配布する場合、ソースコードを非公開にすることができます。


d. 主要なライセンス

GPL 】(GNU General Public License)

広く使われている、オープンソース・フリーソフトウェア用のライセンスです。
このライセンスの要点は3つ。1つ目は「著作権表示を保持しなければならない+無保証である」という事。
著作権が表示された部分は必ずそのままにしておく。ソフトウェアを使用した結果いかなる損害が発生しても、責任は自分で負う。

2つ目は、「GPLライセンスのオープンソース・フリーソフトウェアは、誰でも自由に複製・改変・頒布することが許可されている」。
つまり、GPLライセンスのソフトウェアを入手して、そのソフトウェアに改良を加え、別のソフトウェアを制作し、それを公開したり販売したりしてもよい、という事。

そして3つ目は、「GPLライセンスのソフトウェアやプログラムを使用した場合、その制作物もGPLライセンスで配布しなければならない」という制約。
この制約は、いわゆる「コピーレフト」という考え方である。これがGPLの最も特徴的な部分であり、問題になる点でもある。
つまり、GPLライセンスのソフトウェアに改良を加えた別のソフトウェアは、「誰でも自由に複製・改変・頒布することを許可」しなければならない。GPLライセンスのソフトウェアに改良を加えた別のソフトウェアを売ってもいいが、それが無料で再配布されても文句は言えない。
また、制作したソフトウェアに一行でもGPLライセンスのものを使用した場合、たった1行だとしても「誰でも自由に複製・改変・頒布することを許可」しなければならない。
しかし、この感染力の強さ、強制的に制約された自由というのは、何代にも渡っても「フリーソフトウェアであり続ける事」を可能にするという利点でもあります。
自分の作ったソフトウェアが、どこかで勝手に独占的に使用されたり、横取りされてしまう事を防ぐという部分が、このGPLライセンスを普及させた要因のひとつです。

LGPL 】(GNU Lesser General Public License)

これは、GPLライセンスの制約を若干緩めたもので、主にライブラリやモジュールみたいなものに使用されているライセンスです。
GPLライセンスとの違いは、「動的リンクとして使用した場合は、そこ以外の部分にはLGPLライセンスを適応させなくてよい」。
自分で制作したソフトウェア(実行ファイル「abc.exe」内部も完全自作)で、ライブラリとしてLGPLライセンスの別のソフトウェアを使用したい場合、そのライブラリを、外部ファイルとして「xyz.dll」みたく使用するなら、そこ以外の部分はLGPLは関与しないという事。
しかし、本体である「abc.exe」の中にLGPLライセンスのものを直接使用した場合は、これまた全てLGPLライセンスにしなければいけません。

BSD 】(Berkeley Software Distribution License)

これは前述のGPLやLGPLに比べて、格段に制約の緩いライセンスとなっています。
制約となる条件が2つだけです。
1つ目は「再配布時には著作権表示を残す」という事。もうひとつはGPLライセンスでも明示されていた「無保証である」という事。
この2つを守りさえすれば、どのように利用しても構いません。ライセンスをGPLに変えて再配布するもよし、改変して独占販売するもよし、ソフトウェアだけ頒布してソースを非公開にしてもよい。
ただし、ひとつだけ注意事項があります。それは、BSDライセンスには「オリジナルBSDライセンス」と「修正済みBSDライセンス」の2つがあるという、紛らわしい事実。
前者のオリジナルにはもともと、「謝辞として初期開発者を表示する事」という条件が付いていました。しかし、ほとんど広告的な意味となってしまうため、後日その条項を削除したものが発表されました。それが「修正済みBSDライセンス」です。
BSDライセンスとだけ書かれていた場合は、その辺りを多少気にした方が良いかもしれませんね。ただ、実際は謝辞の表示が必須かどうかというだけなので、そこまで過敏に注意する必要まではないかと思います。

MIT 】MIT License(X11 License、X Licenseとも呼ばれる)

上記の「修正済みBSDライセンス」と同条件のライセンスになります。
再配布時には著作権表示を残す+無保障である、という2つのみが、このライセンスを持つものの使用許諾条件です。
この「MITライセンス」は、時として「X11ライセンス」や、単に「Xライセンス」と呼ばれる事もあります。

MPL 】(Mozilla Public License)

Firefoxでお馴染みのMozillaプロジェクトのために用意されたライセンスです。
内容としては、LGPLとBSDの中間とも言えるような条件となっており、LGPLほどではないにしろ、コピーレフトの思想を持ったライセンスです。
具体的に言うと、ソースコードを変更して使用した場合は、その部分はMPLライセンスで公開する必要があります。
で、LGPLと同じく動的リンクで使用する場合は、使用本体にまでは関与しません。
さらに、ここが「LGPLとBSDの中間」と言われる所以ですが、MPLのソースコード自体を別ファイルとして使用するのであれば、これも使用本体にまでは関与しない。
つまり、あなたが制作した「B」というソフトウェア内の実行ファイル「abc.exe」の内部で「C」というLGPLライセンスのものを使用したい場合、その「C」というソースコードが独立して1つのファイルとなっている状態であれば、「B」すべてをMPLにする必要は無い、という事です。

CC 】(Creative Commons)

これまでのライセンスがプログラムソース的なものに対するライセンスなのに対して、このCCライセンスは「著作物全般」に使用できるライセンスとなっています。
このCCライセンスの特徴は、「著作権者のクレジット(名前)表記」のみが絶対の条件とされ、他に3つの使用条件を組み合わせる事で、著作権者の希望に沿ったランセンスを明示できるというところです。
CCライセンスの4つの使用条件はアイコンとしても出回っており、視覚的にもCCライセンスだと分かり易いものとなっています。

  1. 著作権者のクレジット表記義務:
    このアイコンが表示されている場合、原著作権者のクレジットを明記しなければいけません。
  2. 非営利の場合のみ使用許可:
    このアイコンが表示されている場合、この作品を営利目的で利用してはいけません。
  3. 改変の禁止:
    このアイコンが表示されている場合、この作品を改変・変形または加工してはいけません。
  4. 同一条件の継承義務:
    このアイコンが表示されている場合、この作品を改変・変形または加工した場合、その制作品をこの作品と同一の許諾条件でのみ、頒布することができます。

気をつけなければいけないのは、CCライセンスの場合、クレジット表記が絶対条件だというところ。なので、WEBサイトの受注制作時においては使い難いライセンスではあります。
無料配布されているフォトショップのブラシファイルなんかもCCライセンスのものが多いので、これを使用する場合もどこかしらに著作者のクレジットを表記しなければいけません。

public domain

著作権の保護期間を満了したり、著作権者が著作権を放棄したようなものを総じて「パブリックドメイン」と呼びます。
パブリックドメインというのは、そもそも著作権者がいないという事なので、自由に使っても(知的財産権を理由に)訴えられることのない著作物といえます。




z. 出題範囲概要

概要 :
  • オープンソースの定義や特徴を知っている。
  • 主要なオープンソースのライセンスについて知っている。

詳細 :
  • オープンソースの定義を理解している。 自由 ソースコード
  • オープンソースの特徴を理解している。 著作物 無保証 継続した開発 多くのライセンスが存在
  • 主要なライセンスの特徴を知っている。 GPL, AGPL, LGPL, MPL, BSD系(MIT, Apache V2), パブリックドメイン 改変と再配布

  [ 例題 ] 


         

    www.it-shikaku.jp