理系学生日記

おまえはいつまで学生気分なのか

「OSSライセンスの教科書」を読んだ

OSSのライセンスをどう設定したものかと悩むことがあり紹介いただいて読みました。

ぼくのこれまでのOSSライセンスへの理解が小学生並だったこともあり、読んで非常によかったです。 もはやOSS利用のないソフトウェア開発はほぼ無いという認識なので、こういったライセンスの話は新人研修などで取り上げても良いのではないでしょうか。

書籍の概要

大きく分けて「基本編」「実務編」「戦略編」に分かれています。

「基本編」は、そもそもOSSを利用する意義が何かから始まり、ソフトウェアと著作権の関係、ソフトウェアを利用・頒布するためのOSSライセンスの種類とその概要が示されます。私が読んでよかったと思ったのはまさにこの編でした。

ソフトウェア開発のプロフェッショナルが持つべき最低限の常識として、ソフトウェアを利用するときには著作権者から利用の許可を得なくてはならないことを絶対に忘れてはいけません。

これ忘れがちですよね。自分が作ったソフトウェアに含まれるOSSを管理しているでしょうか。そのOSSの課すライセンスを満たしているでしょうか。 このような疑問に答えるためにはまず前提として個々のソフトウェアライセンスの理解が必要で、基本編でも以下のライセンスを条文とともに解説してくれています。

  • TOPPERSライセンス
  • MITライセンス
  • BSDライセンス
  • Apacheライセンス
  • GPL
  • LGPL
  • AGPL

そして「実務編」ではそのようなライセンスの理解を前提として、正しくソフトウェアを利用するために実務上でどのようにライセンスと向き合えば良いのかが記載されています。

インターネットで簡単に入手できるソフトウェアをそのまま何も検討しないで使ってしまうのは、道ばたに落ちているコーラをそのまま飲んでしまうのと同じことだと心得るべきです。

利用する複数のOSSのライセンスが多数となった場合にどのような問題が発生し得るのか、リリース直前になってライセンス問題が発覚しないような開発プロセスはどうあるべきかといったことが議論されます。

興味深かったのは、OSSを利用したソフトウェアのOSSライセンスファイルの例です。 利用するソフトウェアのライセンス条件である著作権表記やライセンス全文記載の方法が具体的に記載されている書籍を読むのは初めてでしたので、「なるほど!」感が満載でした。

===============================================================================
[Apache HTTP server]
===============================================================================

Apache HTTP Server 
Copyright 2018 The Apache Software Foundation.

This product includes software developed at 
The Apache Software Foundation (http://www.apache.org/)

(snip: Apache の LICENSE 全文)

===============================================================================
[react]
===============================================================================

MIT License

Copyright (c) 2013-present, Facebook, Inc.

(snip)

最後の「戦略編」は著者の想いの溢れる章で、OSSを用いてイノベーションをどう起こすかというお話です。

感想

不勉強だった分野だったので、目から鱗という感覚です。

特にJavaScript周りは考えさせられることが多くて、例えばOSSの頒布に関して以下のような記載があります。

ところが、Webサイトからはユーザーの側(ユーザーのマシン)で実行されるプログラムがサーバーからユーザー側に渡されることもあります。 代表的なものとしてJavaScriptのプログラム(スクリプト)があります。これはサーバー側からユーザー側に頒布されます。もしそのJavaScriptのプログラムがOSSであった場合は、OSSの頒布が行われるということになります。

つまりは、OSSを組み込んだJavaScriptは「OSSの頒布」に該当するということが記載されています。

Cybozuの「OSSライセンスについて」でも、それを前提とした記載がされているように読めます。

しかし「JavaScript で使うライブラリだから、大丈夫」とは行きません。有名なのは React.js です。こちらのライブラリは Facebook によって作成・公開されており、ライセンスとして BSD-style license が適用されていました。BSD ライセンス自体は、比較的利用にあたっての自由度が高いライセンスなのですが、Facebook はこのライセンスに独自項目として、「Facebook 及び Facebook の関連会社を特許で訴訟した場合、ライセンスは破棄され、Facebook のコードを使う権利を失う」というものを追加していました。つまり、ライセンスとしては BSD + 特許事項 (Patents License) の形で配布されていたのです。

※2018年8月の記事なのでReact.jsがBSDライセンスになっていますが、今はMITライセンスです。上記記事上にも「2018年10月現在では、React.js は MIT ライセンスに変更されたため、上記のような問題はありません。」との文言が入っています。

OSSを組み込んだJavaScriptがOSSの頒布にあたるのか、私は専門家でないので断言はできません。ですが説得力は強く感じます。

このような事柄は本書を読まないと考えようともしなかったので、大変勉強になりました。