自由ソフトウェアとは?
「自由ソフトウェア」は利用者の自由とコミュニティを尊重するソフトウェアを意味します。おおよそで言うと、そのソフトウェアを、実行、コピー、配布、研究、変更、改良する自由を利用者が有することを意味します。ですから、「自由ソフトウェア」は自由の問題であり、値段の問題ではありません。この考え方を理解するには、「ビール飲み放題(free beer)」ではなく「言論の自由(free speech)」を考えてください。わたしたちは無償の意味ではないことを示すのに時々、「自由」を表すフランス語あるいはスペイン語の言葉を借りて「リブレソフトウェア」と呼びます。
自由ソフトウェアのコピーを手に入れるのにお金を払った方もいるかも知れませんし、コピーを無料で手に入れた方もいるでしょう。しかしどのようにしてご自分のコピーを手に入れたかには関係なく、あなたにはいつでもソフトウェアをコピーし変更する自由があるのです。その自由には、コピーを売る自由すら含まれます。
わたしたちは、これらの自由のために運動します。なぜならすべての人がその自由に値するからです。これらの自由によって、利用者(個々人のみならず全体として)はプログラムとそのプログラムが利用者になすことを制御します。利用者がプログラムを制御しないとき、わたしたちは、それを「不自由」あるいは「プロプライエタリ」のプログラムと呼びます。不自由なプログラムは、その利用者を制御するでしょう。そして開発者がプログラムを制御します。これは、プログラムを不公正な力の道具とします。
「オープンソース」は異なるものです: それは異なる価値にもとづいたとても違った理念を有します。その実際の定義も異なりますが、ほとんどすべてのオープンソースのプログラムは実際に自由です。わたしたちはその違いをなぜ「オープンソース」は自由ソフトウェアの的を外すのかで説明しています。
もくじ
ここで回答されていない自由ソフトウェアのライセンシングについて質問がありますか? わたしたちのライセンシングの資料をご覧ください。そして必要であれば、FSFのコンプライアンス・ラボ、[email protected]にメールで連絡ください。
自由ソフトウェアの定義
自由ソフトウェアの定義は、ある特定のソフトウェア・プログラムが、自由ソフトウェアとして適格であるかどうかの基準を示します。時に応じて、わたしたちはこの定義を改訂し、これを明確化し、また、本質的な問題に対する疑問を解決します。自由ソフトウェアの定義に関連する変更については、履歴をご覧ください。
四つの基本的な自由
あるプログラムが自由ソフトウェアであるとは、そのプログラムの利用者が、以下の四つの必須の自由を有するときです: [1]
- どんな目的に対しても、プログラムを望むままに実行する自由 (第零の自由)。
- プログラムがどのように動作しているか研究し、必要に応じて改造する自由 (第一の自由)。ソースコードへのアクセスは、この前提条件となります。
- ほかの人を助けられるよう、コピーを再配布する自由 (第二の自由)。
- 改変した版を他に配布する自由 (第三の自由)。これにより、変更がコミュニティ全体にとって利益となる機会を提供できます。ソースコードへのアクセスは、この前提条件となります。
利用者が以上であげた全ての自由を有していれば、そのプログラムは自由ソフトウェアです。そうでなければ、不自由です。さまざまな不自由な配布の仕組みについて、どのくらい自由から外れているかの観点から区別することは可能ですが、わたしたちは、そのすべてを等しく非倫理的だと考えています。
どのような与えられたシナリオにおいても、これらの自由は、わたしたちが使用しようとする、あるいは、他人に使用するように導く、いかなるコードにも適用されなければなりません。たとえば、あるプログラムAが自動的にプログラムBを起動して、なにかを扱う状況を考えてみてください。もし、わたしたちがAをそのままで配布しようとし、それがユーザがBを必要とすることを意味するならば、わたしたちはAとBの両方が自由であるべきと判断するでしょう。しかし、わたしたちがAを変更してBを使用しないようにしようとするならば、Aだけが自由であればよく、このやり方ではBは関連しません。
自由ソフトウェアは商用にできる
「自由ソフトウェア」が意味するのは、「非商用」ということではありません。逆に、自由なプログラムは商用利用や商用開発、商用配布することができなければなりません。このポリシーは基本的な重要事項の一つであり、これなしでは、自由ソフトウェアはその目的を達しえないでしょう。
わたしたちはGNUシステムを利用することにみなを招待したいと考えています。ビジネスやビジネスで仕事をする方たちを含めてです。わたしたちは自由な代替プログラムが似たようなプロプライエタリのプログラムを置き換えることを願っていますが、もしビジネスでの利用が禁じられていたらそれはできません。わたしたちはGNUシステムを含むことができるソフトウェアの商用プロダクトを望んでいますし、それは値段のついた商用配布を構成するでしょう。自由ソフトウェアの商業的開発はもはや珍しいことではありません。そのような自由の商用ソフトウェアは極めて重要です。支払われる、プロフェッショナルの自由ソフトウェアのサポートは、重要な需要を満たします。
ですから、商用利用、商用開発、あるいは商用配布をを除外することは、自由ソフトウェア・コミュニティに足かせをはめてしまい、成功への道を妨害してしまうでしょう。そのような制限でライセンスされたプログラムは自由ソフトウェアとして適格ではないと結論づけなければなりません。
以前の配布において、これまでのところ、ユーザがそのソフトウェアをカバーする自由なライセンスの条項にしたがっている状況において、自由なプログラムは、そのソフトウェアのコピーを入手したどんなユーザにも(今後のユーザも含めて)四つの自由を提供しなければなりません。あるユーザに対してある自由に関して制限を加えることや、自由を行使するユーザに対して金品やその種の支払いを要求することは、当該の自由を与えないことに等しく、ですから、プログラムを不自由としてしまいます。
自由と不自由の間の境界を明確にする
ここからは、あるプログラムが自由であるために、さまざまな自由がどれだけ拡張される必要があるか、いろいろな問題について、より正確に説明します。
プログラムを望むままに実行する自由
プログラムを実行する自由とは、どんな人間や組織でも、あらゆるコンピュータシステム上で、どんな種類の仕事と目的のためにでも、開発者や特定の団体と連絡する必要なく、プログラムを使うことができるという自由を意味します。この自由では、利用者の目的が問題で、開発者の目的は問題ではありません。(あなたは利用者として、あなたの目的でプログラムを実行する自由があり、あなたがそれを他の誰かに配布したとき、その人はその人の目的でプログラムを実行する自由があります。あなた自身の目的を押し付けることはできません。)
望むままにプログラムを実行する自由は、実行することを禁止されない、止められない、という意味です。これは、プログラムがどういった機能を有するか、ある与えられた環境で機能することが技術的に可能かどうか、または、ある特定のコンピューティングの活動に対して有用かどうか、とは何の関係もありません。
たとえば、そのコードがある意味ある入力を任意に拒絶(もしくは、無条件に失敗)し、そのプログラムを有用でなく(あるいは完全に無用と)してしまうけれども、ユーザがそのプログラムの実行することは拒否しない場合、第零の自由とは衝突しません。そのプログラムが自由であれば、そのユーザは有用性の損失を克服できます。なぜなら、第一の自由と第三の自由が、ユーザとコミュニティが任意の迷惑のコードなしの改変されたバージョンを作成して配布することを許すからです。
「望むままに」は、オプションとして、もしそれが望むことであるなら、「まったくなし」を含みます。ですから、別の「プログラムを実行しない自由」は必要ありません。
ソースコードを研究し、変更する自由
第一の自由と第三の自由(変更を加える自由、そして変更した版を発表する自由)を意味のあるものとするためには、そのプログラムのソースコードにアクセスできることが必要です。ですから、ソースコードが入手可能であることは自由ソフトウェアにとって必要条件となります。難読化された「ソースコード」は本当のソースコードではなく、ソースコードとはみなされません。
ソースコードは、変更を加えるプログラムの好ましい形態として定義されます。ですから、プログラムを開発するのに開発者が変更する形態が、その開発者のバージョンのソースコードです。
第一の自由は、元の版に代えて変更された版を使う自由も含みます。もし、プログラムが他の人の変更した版は実行できるが、あなたの版は実行できないというように設計された製品のために配布されるならば(“tivoization”、“lockdown” もしくは(実務家のひねくれた用語でいうところの)「セキュアブート」として知られる慣習ですが)、第一の自由は実際の自由ではなく、中身のない見せかけのものとなってしまいます。そういったバイナリは、たとえ元となっているソースコードが自由であるとしても、自由ソフトウェアではありません。
プログラムを変更する一つの重要な方法は、利用可能な自由なサブルーチンやモジュールにマージすることです。もしプログラムのライセンスが、それを適切にライセンスされた既に存在するモジュールにマージすることができないというのであれば、(たとえば、あなたが加えるコードは、すべて、あなたが著作権者であることを要求する)、そのライセンスは自由であるとするには、制限が強すぎるといえるでしょう。
変更が改良となるかどうかは従属的な問題です。もし、プログラムを変更する権利が本質的に制限され、他の誰かが改良と考えなければいけないとすると、そのプログラムは自由ではありません。
第一の自由の一つの特別なケースは、そのプログラムのコードをなにもせずに戻ってくるように削除したり、ほかのプログラムを起動するようにさせることです。ですから、第一の自由は「プログラムを削除する自由」を含みます。
望む場合に再配布する自由: 基本的な要件
配布する自由(第二と第三の自由)は、変更したものもしてないものも、配布手数料ありでもなしでも、どこの誰にでも自由に再配布することを意味します。これらのことをするのが自由だという内容には、許可を求めたり、そのためにお金を払ったりする必要がないということも(その他のこともあわせて)含まれています。
あなた自身の仕事や趣味においてプライベートにソフトウェアを改変し、それらを使う自由もあるべきです。プライベートな変更が存在することについて言及することさえ必要とされずにです。もし、あなたがご自分の行った変更を発表する場合でも、特定の誰かに、もしくは何か特定の方法で、それを知らせる必要はありません。
第三の自由は、改変した版を自由ソフトウェアとしてリリースする自由を含みます。自由なライセンスは、他の方法でリリースすることも許してもかまいません。別の言葉でいえば、それはコピーレフトのライセンスである必要はありません。しかし、変更した版は不自由であるとするライセンスは、自由ソフトウェアとして適格であるとはいえません。
コピーを再配布する自由には、ソースコードの配布と同じく、プログラムのバイナリあるいは実行形式での配布も変更の有無を問わず含まれなければなりません。(実行できる形でプログラムを配布することは、簡単にインストールできる自由なオペレーティング・システムのために必要です。) バイナリや実行形式を作成する手段が無いとき(いくつかのプログラミング言語はこういった機能をサポートしていません)には構いませんが、後にそういった形式を作成する方法を見つけたり開発したりするかも知れませんから、そのような形式で再配布する自由がなければなりません。
コピーレフト
自由ソフトウェアを配布する方法についてのある種の規則は、それらが主要な自由と衝突しない限り容認できます。たとえば、コピーレフトは(非常に簡単に言えば)プログラムを再配布するときに、あなたは他の人々の主要な自由を否定するような制限を加えることができないという規則です。この規制は主要な自由とは衝突せず、むしろそれらを保護するものと言えます。
GNUプロジェクトでは、すべての人に対して上記の自由を法的に保護するためコピーレフトを使っています。わたしたちは、コピーレフトを使う方が良い重要な理由があると考えています。しかし、コピーレフトでない自由ソフトウェアも倫理的です。「自由ソフトウェア」、「コピーレフトのソフトウェア」、そしてその他の種類のソフトウェアがお互いにどう関連しているかについての説明は、自由ソフトウェアの分類をご覧ください。
パッケージングと配布の詳細のルール
変更されたバージョンをどのようにパッケージするかについての規則も、そういった規則が変更されたバージョンを人々がリリースする自由や、プライベートに変更されたバージョンを作成して利用する自由を強く妨げない限り容認できます。ですから、変更した版の名前の変更やロゴの削除を要求したり、あなたの変更をあなたのものだと同定できるように要求するライセンスは容認できます。それらの要求がとても厄介で、あなたの変更を実効的に妨害するのでない限り、それらは容認できます。プログラムに対してその他の変更を既に行っているのですから、加えてもう少し変更することはそんなに苦労とはならないでしょう。
「もしあなたがプログラムの版をこういうやり方で入手できるようにしたら、あなたはそれをこういうやり方でも入手可能にしなければなりません」といった規則も、同じ条件の下で受け入れられます。そのような容認できる規則の例は、変更された版を配布するならば、以前の開発者がそのコピーを要求してきた場合に送らなければならない、というものです。(そのような規則であれば、依然としてプログラムを配布するかしないかという選択の余地はあることに注意してください。) 公共の利用に供する版について、利用者へソースコードを提供することを要求する規則も容認できることです。
ライセンスが名前の変更を要求するとき、ほかのプログラムからそのプログラムが起動される名前をどうするかという特別な問題が生じます。ほかのプログラムから起動される場合、オリジナルを置き換えるような変更版をリリースすることを、名前の変更の要求が実効的に妨げてしまうからです。このような要求は、オリジナルのプログラムの名前を変更版の別名として指定できるような適切なエイリアスの仕組みがある場合のみ容認できます。
輸出規制
ときとして、政府による輸出規制と貿易制裁があなたが国際的にプログラムのコピーを配布する自由を束縛することがあります。ソフトウェア開発者にはこれらの制限を除去したり覆したりする力はありませんが、彼らにもでき、そしてすべきことはプログラムの利用に関する条件としてそういった制限を課すのを拒否することです。こうすれば、制限はこういった政府の管轄が及ばないところの人びとやそこでの活動には影響しないでしょう。ですから、自由なソフトウェアのライセンスは、本質的な自由のどれに関しても、それを実施する条件として、いかなる些細ではない輸出規制にも服従することを要求してはならないのです。
単に輸出規制の存在に触れること、ライセンスそれ自身の条件とすることなしで、は容認されます。それはユーザを制限しないからです。輸出規制が自由ソフトウェアにとって実際は些細なことである場合、条件としてそれを要求することは、実際の問題ではなく、潜在的問題です。後日の輸出法の変更で、その要求が些細ではないものとなり、ソフトウェアを不自由にしてしまう、ということがありうるからです。
法的な考察
これらの自由を本当のものとするためには、以上であげた自由は、あなたがなにか間違ったことをしない限り恒久的で取り消し不能のものでなければなりません。もしソフトウェアの開発者に、あなたになんら落ち度がないのに、ライセンスを取り消したり遡及してその条項に制限を加える力があれば、そのソフトウェアは自由ではありません。
自由ライセンスは不自由なプログラムのライセンスへの準拠を要求しないことが可能です。ですから、たとえば、もし、あるライセンスが「あなたが使うすべてのプログラム」のライセンスについて準拠することを要求する場合、あるユーザが不自由なプログラムを実行するケースでは、これはそういった不自由なプログラムのライセンスに準拠することを要求するかもしれません。それはこのライセンスを不自由としてしまいます。
どの管轄の法律が適用されるか、あるいは訴訟が行われる場所、もしくはその両方を指定することは、自由ライセンスに容認されます。
契約を元にしたライセンス
ほとんどの自由ソフトウェアのライセンスは、著作権を元にしています。そして著作権によって課することができる要求には制限があります。もし、著作権を元にしたライセンスが、上記に記した自由を尊重するならば、まったく予期しない他の種類の問題があることはありそうもないでしょう(予期しないことはまま起こりますが)。しかし、ある自由ソフトウェアのライセンスは、契約を元にするもので、契約はもっと広範な制限を課することが可能です。これは、そのようなライセンスが、容認できないほど制限が強く、不自由でありうる、いくつもの形態がありうることを意味します。
わたしたちは、起こりうるすべてのことをあげることはできないでしょう。もし、契約を元としたライセンスが利用者を(著作権を元としたライセンスでは無理な形で)異常に制限するならば、そして、それがここで正当だと述べられていないのならば、それについて検討しないといけないでしょうし、そのライセンスは、不自由であると結論づけるかもしれません。
自由ソフトウェアの定義の実際
この基準をわたしたちはどのように解釈するか
この自由ソフトウェアの定義で述べられたような基準はその解釈に関して熟慮を必要とすることに注意して下さい。ある特定のソフトウェアライセンスが自由ソフトウェアのライセンスであると判断するに当たって、わたしたちはこれらの基準を基に、言い回しの厳密な吟味に加えてその精神が自由ソフトウェアのそれに合致するかを考慮して判定します。もしライセンスが不当な制限を含んでいたならば、たとえそういった問題をこの基準で予期していなかったとしても却下します。時として、ライセンス条件が喚起する問題によっては、その条件が容認できるかどうか判断する前に、弁護士との協議など広範囲な検討が要求されることもあります。わたしたちが新しい問題に関して結論に達したならば、わたしたちはしばしばこれらの基準を更新して、あるライセンスが自由ソフトウェアのライセンスとして適格であるかどうかの理由をより簡単に理解できるようにします。
自由なライセンスについて助けてもらう
もしある特定のライセンスが自由ソフトウェアのライセンスとして認められるかどうかに興味があるならば、わたしたちの ライセンス一覧を参照してください。もしあなたが関心のあるライセンスがここにあげられていなければ、<[email protected]>までメールで連絡していただければ検討いたします。
もし、新しいライセンスを書こうと考えているならば、まず、フリーソフトウェアファウンデーションの住所に文書で連絡してください。異なる自由ソフトウェアのライセンスの増殖は、ライセンスを理解する利用者の仕事を増やすことにつながります。わたしたちは、既存の自由ソフトウェアのライセンスからあなたの必要に応じたものを見つけることを手伝うことが出きるかもしれません。
もしそれができない場合、もし本当に新しいライセンスが必要な場合、わたしたちの援助によって、あなたはそのライセンスが本当に自由ソフトウェアのライセンスであることを確実にでき、いくつもの実際的な問題を避けることができます。
自由ソフトウェアについて話すときは正しい語を使いましょう
自由ソフトウェアについて語るとき、「タダであげる」とか「無料」といった言い回しは避けるのが最上です。というのも、こういった言い回しは問題としているのが値段であって、自由ではないような印象を与えるからです。「海賊版(piracy)」などのよく使われる用語もまた、わたしたちとしてはあなたが支持しないことを望む通説を具現しています。避けた方が良い混乱を招く言葉と言い回しでこういった用語について検討していますのでご参照下さい。また「自由ソフトウェア」の各言語訳の一覧もご用意しています。
別の人びとは、「オープンソース」という用語を「自由ソフトウェア」と近い(しかし同一ではない)ものを意味するのに使ます。わたしたちは「自由ソフトウェア」という用語のほうを好んでいます。それはいったん皆さんが「フリー」が値段ではなく自由について言及しているのだということを聞けば、それが自由について思い起こさせてくれるからです。「オープン」という言葉が自由に言及することはまったくありません。
ソフトウェア以外について
ソフトウェアのマニュアルは自由でなければなりません。ソフトウェアが自由でなければならないのと同じ理由です。マニュアルは実質的にソフトウェアの一部だからです。
他の種類の作品で実践的な利用をされるものについて同様な議論が意味を持つでしょう。つまり、有用な知識を具体化する作品、教育作品やリファレンス作品などです。Wikipedia がよく知られた例です。
どんな作品も自由とすることが可能です。自由ソフトウェアの定義は自由な文化作品の定義へと拡張され、どのような種類の作品へも適用できます。
履歴
時に応じて、わたしたちは、この定義を改訂します。ここに具体的に何が変更されたかわかるリンクとともに主要な改訂のリストを示します。
- Version 1.169: 四つの自由が商用の活動に適用されなければならない理由をより明確に説明した。四つの自由が、そのプログラムを実行しなくてもよい自由と削除する自由を含意することの理由を説明し、別の要求事項として述べる必要のないことを説明した。
- Version 1.165: コード内の任意の迷惑は第零の自由を否定せず、第一と第三の自由はユーザがその迷惑を除去することを可能とする、と明確にした。
- Version 1.153: プログラムを実行する自由とは、なにものもあなたがそれを実行することを止められない、と明確にした。
- Version 1.141: どのコードが自由でなければならないかを明確にした。
- Version 1.135: 第零の自由はプログラムを望むままに実行する自由である、と述べる。
- Version 1.134: 第零の自由はプログラムの機能の問題ではない。
- Version 1.131: 自由ライセンスは、ほかのプログラムの不自由なライセンスへの準拠を要求しないことが可能である。
- Version 1.129: 明確に法律の選択と法廷の選択の指定は許されることを述べた。(これはこれまでもわたしたちのポリシーでした。)
- Version 1.122: 輸出規制の要求は、その要求が些細ではないものの場合、現実の問題で、そうでなければ単に潜在的問題です。
- Version 1.118: 明確化: 問題は変更する自由を制限することであり、どのような変更を行ったかではない。変更は「改善」に限らない。
- Version 1.111: 1.77の変更を明確にし、遡及する制限だけが容認できない、と述べた。作品を別の方法で並行してリリースすることで、著作権者が追加の許可を作品に与えることは常に可能です。
- Version 1.105: 第一の自由について、簡潔な文章で、(既に version 1.80 で述べられた)あなたのコンピューティングのためにあなたの変更した版を使うことを実際に含むという点を反映した。
- Version 1.92: 難読化したコードはソースコードとして適格ではないことを明確にした。
- Version 1.90: 第三の自由は、あなた自身の変更した版あるいは改良した版を配布する権利であり、他の誰かの開発プロジェクトに参加する権利ではないことを明確にした。
- Version 1.89: 第三の自由は、自由ソフトウェアとして改変した版をリリースする権利を含む。
- Version 1.80: 第一の自由は、単に理論的なだけでなく、実際的でなければならない(すなわち、Tivoization なしに)。
- Version 1.77: 遡及するライセンスの変更はいかなるものも容認できないこと(たとえ完全な代替であると述べられてなくとも)を明確にした。
- Version
1.74: 4つの重要な点の説明は明示が充分でないか、他のところで述べられているが全体に反映されていない:
- 「改良」は、ライセンスがどのような改変した版ならばリリース可能であるかを本質的に制限することを意味しない。第三の自由は、変更そのものだけでなく変更を加えた版も配布する自由を含む。
- 存在するモジュールにマージする権利は、適切にライセンスされたモジュールについて、である。
- 輸出規制の結論の点を明示した。
- ライセンスの変更を押し付けることは、古いライセンスを無効にすることに含む。
- Version 1.57: "ソフトウェア以外" セクションを加えた。
- Version 1.46: 目的を問わずプログラムを実行する自由について、誰の目的が重要なのかを明確にした。
- Version 1.41: 契約を元にしたライセンスについて言葉遣いを明確にした。
- Version 1.40: 自由ライセンスは、変更を作り出す際に他の利用可能な自由ソフトウェアを使うことを許さなければならないことを説明した。
- Version 1.39: ライセンスが公共の利用に供するソフトウェアの版のソースコードを提供することを要求することは容認できることを述べた。
- Version 1.31: 変更の作者を同定することを要求するライセンスは容認できることを述べた。文章全体で他の小さな明確化を行った。
- Version 1.23: 契約にもとづくライセンスに関して潜在的な問題について扱った。
- Version 1.16: なぜバイナリの配布が重要かを説明した。
- Version 1.11: 自由ライセンスは、あなたが配布した版を以前の開発者の要求に応じて送ることをあなたに要請することができることを述べた。
上述の履歴の説明で、バージョン番号が飛び飛びですが、これは、定義とその解釈に関係しないほかの変更があるからです。たとえば、フォーマットの変更、スペルの変更、句読点の変更、あるいはその他のページの変更については挙げていません。ページの完全な変更のリストは、cvsweb インタフェースで確認ください。
脚注
- 0, 1, 2, 3 と番号が付いている理由は歴史的なものです。1990年の頃には1, 2, 3 の三つの自由でした。それから、プログラムを実行する自由は明示して説明されねばならないと、分かりました。プログラムを実行する自由は明らかにほかの三つよりも基本的なものですから、三つよりも正しく先にあるべきです。よって、ほかを番号変えず、第零の自由としたのです。