フリーなUNIX OSソフトウェア部品「GNU」と、GNUを開発するGNU Project、ライセンスのGPLやLGPLに関するFAQ。
一般的な言葉の用法はともかくとして、厳密かつ正確に言えば、GNUはOSの名前、GNU ProjectはGNUを開発するプロジェクト、FSFはGNU Projectとして開発されたフリーソフトウェアとライセンスの管理財団です。
GNU Projectでは、UNIX互換のOSをフリーソフトウェアとして開発することを目指しており、その名前がGNUと呼ばれる。(*1) GNU Projectは自主参加型のプロジェクトで、フリーソフトウェアとして使えるソフトウェアを自ら開発しようとする人で成り立っている。FSFはライセンスやフリーソフトウェアとして寄贈された知的財産を管理する組織。
元々の目的はUNIX互換ツールを開発してフリーで公開することだったがカーネル以外の細々としたツールは大体出来上がったし、カーネルはLinuxが登場してすぐに実用段階まで成長したので、今は過去に作られたソフトウェアのメンテナンスだとか、UNIX互換に限らないフリーソフトウェアの自主開発とかをやっている。
Linuxでは、カーネルをビルドするためのコンパイラなどにGNU Projectとして開発されたものが使われている。また、カーネルを起動するためのブートローダー、起動したカーネルで実行できるUNIXツールの中にGNU Project由来のソフトが多数再利用されており、ユーザーランドから見てGNU由来のソフトが多いため、それを強調して「GNU/Linux」と呼ぶこともある。
GNU General Public License(GNUの一般公共ライセンス)の略。
「ソフトウェアはユーザーに自由であるべき」というGNU Projectによる考えから作られたフリーソフトウェアの開発・配布促進用ライセンス。
ライセンスの内容は和訳(法的な効力はなし)を参照のこと。
以下は要約
元々は GNU Project のライセンスだったが、Linux などでも採用された。改変された状態であっても元のソフトウェアと同じく自由な姿での配布を要求する「コピーレフト」を主張するライセンスの1つ。
GPL を少し緩めたライセンス。GNU Lesser General Public License(GNU 劣等 一般公衆利用許諾契約)の略。 GNU では使用することを勧めていません。
GPL で配布されているソフトでは、改変して配布する場合も全体をGPLで配布しないといけない。これは、元の著作物とは別に「派生物」と呼ばれる。
ただし、改変したプログラムにGPLだったプログラム片がどれだけ含まれていればそれが派生物とされるのか、という点が曖昧だという問題があった。GPLなコードを1行入れただけでも派生物なら(※)、GPLなライブラリにリンクさせるために、GPLな関数のシンボル情報を組み込むのはどうなのか、とか。
ライブラリを使うソフトをGPLなものに限定するのならこうした問題を気にする必要はないが、GPLと矛盾するライセンスのソフトが受け入れられるためには問題になるので、わざわざライブラリ用にLGPLってのが開発された。
LGPL では、従来の GPL 方式の自由さをユーザーに一部与えているものの、ライブラリを呼び出すだけのプログラムは派生物ではなくなったので、そうしたプログラムはGPL互換でない非自由なライセンスでもユーザーに配布できる。glibcとかgtk+とかopenoffice.orgとかがLGPLに含まれる。
GPL では、配布の条件として同じライセンスで配布することが求められるので、それはできない。
BSDライセンスでは、ソフトウェアを自由でない状態で配布することが一切禁じられていないので、GPLなソフトをBSDライセンスで配布するということは、元のソフトを自由でない状態で配布する許可を無断で与えることになる。そうした行為は、著作者の同意無しには不可能。
ライセンスで許可されている内容による。
GPLで許可する内容で持って元のライセンス文面を守れるのなら、そういうことも可能。しかし、そうでない場合(たとえば、宣伝条項付きの BSD ライセンス) は、GPLで配布すると許可された内容からはみ出すことになる。なので、使う前にライセンスの適合性を確認すること。
GNU Project が、そういうソフトウェアからコードを使って作ったソフトをGPLで配布しようとする人のためのライセンス文面の矛盾状況を載せているので見るといいかも。
MozillaみたいにGPL/LGPL/MPLとトリプルライセンスになっているソフトウェアの場合は、GPL/LGPLソフトウェアの開発にコードを自由に使うことができる。
たとえば、XはもともとのXがフリーでも、多くのUNIXでプロプライエタリなものだった。 GPLは継承条項をつけることで、「そのソフトウェアがどんな状況でもフリーである」ことを保証する。
*1 GNU=GNU is NOT UNIXの略。