ちょっとしたツール(モバイルの動画再生を助けるもの)をオープンソースで公開しようとして、はたと思い当たった。私は、ライセンスについてほとんど何も知らない。

さんざんOSSにお世話になっといて、「知らない」はあまりにもあんまりだ。知識は荷物にならないことだし、ここはひとつ基本的なことを学んでおこう、と思い立った。ちょうどいい参考書も見つかったことだし。

オープンソースソフトウェアとは

  • ソースを公開しただけではオープンソースソフトウェアとはいえない
  • 公開したソースに著作権者による利用許可(=ライセンス)を与えることで初めて「オープンソースソフトウェア」となる
  • 「オープンソースの3つの自由」
    • 複製
    • 配布
    • 改変
オープンソースにすることのメリット
  • 高機能なソフトウェアを無料で入手
  • ベンダーロックインの回避
  • コミュニティの活用
OSSは何にカネを払うのか?
  • サポート
  • 組み合わせ(OSS / プロプライエタリ)
  • OSSを使ったシステム開発
  • OSSの改良

→サポート、ソリューションなどの技術が価値を生む

オープンソースの発展

  • ソースコードの公開がソフトウェア開発を加速した
    >インターネットの普及が開発者間の距離を劇的に縮めた
  • 「伽藍とバザール」
    >自発的に集まったプログラマがボトムアップで開発を進める
  • LinuxとNetscape
    >OSSの最大の成果 / 商用ソフトウェアの大胆な方針転換

オープンソースとコミュニティ

  • オープンソースソフトウェアを公開すると…
    1. 利用者からのフィードバック
      • 意見 / 要望
      • バグフィクス / 改良
    2. ソフトウェアの品質向上
    3. 利用者が増える
      >1.に戻って好循環(コミュニティが盛り上がれば)
  • コミュニティに参加するメリット

オープンソースの定義

The Open Source Initiative: オープンソースの定義(日本語)

オープンソースライセンスの分類

Open Source Licenses by Category | Open Source Initiative
>多すぎ。

コピーレフトについて

コピーレフトとは?
  • 著作物の利用、コピー、再配布、翻案を制限しない
  • 改変したもの(二次的著作物)の再配布を制限しない
  • 二次的著作物の利用、コピー、再配布、翻案を制限してはならない
  • コピー、再配布の際には、その後の利用と翻案に制限が無いよう、全ての情報を含める必要がある(ソフトウェアではソースコード含む)
  • 利用、コピー、再配布、翻案のいずれにおいても、複製物又は二次的著作物にコピーレフトのライセンスを適用し、これを明記しなければならない
(via Wikipedia)
「コピーレフト」を基準に分類する
  • コピーレフトなし
    >BSDライセンス型
    • 修正BSDライセンス
    • MITライセンス
    • Apacheライセンス
  • 限定的コピーレフト
    >MPL型
    • MPL(Mozilla Public License)
    • CPL(Common Public License)
    • EPL(Eclipse Public License)
  • コピーレフトあり
    >GPL型
    • GPL(GNU General Public License)
    • LGPL(GNU Lesser General Public License)
    • AGPL(Affero General Public License)
  • その他
    • Artisticライセンス
    • Rubyライセンス
コピーレフトの影響

簡単に言うと「改変したら同じライセンスを適用する必要がある」。

コピーレフトのあるライセンスのOSSに手を入れて一儲け、なんてことはできないのだ。ただし、著作権(コピーライト)そのものは二次著作者(改変したプログラマ)のものとなる。

「改変」とみなされる範囲がライセンスごとに違うのでややこしい。重要なので表を引用しておく。

  • 修正:ソースコードを書き換える
  • 追加:新しいコードを追記する、ほかのソースコードに一部をコピーする
  • リンク:静的リンクまたは動的リンク
(via 「ソフトウェアライセンスの基礎知識」p.88)
<th>
  修正
</th>

<th>
  追加
</th>

<th>
  静的リンク
</th>

<th>
  動的リンク
</th>
<td>
  ×
</td>

<td>
  ×
</td>

<td>
  ×
</td>

<td>
  ×
</td>
<td>
  ○
</td>

<td>
  ○
</td>

<td>
  ×
</td>

<td>
  ×
</td>
<td>
  ○
</td>

<td>
  ○
</td>

<td>
  ○
</td>

<td>
  ○
</td>
<td>
  ○
</td>

<td>
  ○
</td>

<td>
  ○
</td>

<td>
  ×
</td>
ライセンスの種類
BSDライセンス型
MPL型
GPL
LGPL
○ : コピーレフトとみなす / × : コピーレフトとみなさない
(via 「ソフトウェアライセンスの基礎知識」p.90)

コピーレフトのあるライセンスの場合、ソースコードに手を入れたら文句なしにコピーレフト。バイナリを動的 / 静的にリンクした場合の扱いに、ライセンスごとに違いがあるということのようだ。

ソフトウェアの名前について

  • 各ライセンスごとに取り決めがある
    • ライセンスに条件がある場合
      >例:「ソースコードを改良して別のプログラムとして配布する場合、もともとの名前を許可なく使わない」
    • 名称を商標登録している場合
      >Firefox、Thunderbirdなど
  • 二次著作物の命名についてはライセンスを読んで条件を理解する必要がある

まとめ

基礎知識としてはこんなところでよいだろうか。簡単にまとめると…

  • ソースコードを公開しただけでOSSとは呼べない
    >ライセンスと組み合わせてこそ
  • 「コピーレフト」については要注意
    >公開するときはもちろん、使うときも
  • さて私はどうしよう
    >修正BSDライセンス、MITライセンスあたりがいいだろうか

さわりを調べただけでもずいぶん奥深いことがわかった。ライセンスはもちろん、そのライセンスが持つ「思想」のようなものにも目を向けると、今までとは違う感覚でOSSと付き合えるかもしれない。

なお、本エントリの内容に関しては無保証である。正確を期してはいるが、ご利用の際は自己責任でお願いしたい。誤りの指摘などは大歓迎である。

参考リンク

Amazon.co.jp: ソフトウェアライセンスの基礎知識: 可知 豊: 本
http://www.amazon.co.jp/exec/obidos/ASIN/4797347368/bottomline02-22

コピーレフト – Wikipedia
http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%94%E3%83%BC%E3%83%AC%E3%83%95%E3%83%88