自由なソフトウェアが、永続的に自由であるための概念としてコピーレフトがある。
コピーレフトとは、配布にあたって「配布される人にソースコードを自由に取得・変更・再配布する権利を提供せずにプログラムの再配布をしてはいけない」という制約をつけることで一旦フリーソフトウェアになったソフトウェアは他人の手を経て再配布されてもフリーソフトウェアであり続けることを保証する。
この制約の有効性はプログラム著作者の著作権(コピーライト)によって保証されている。rightをleftに置き換えてコピーレフトという語が作られた。
日本においては、コピーレフトの観念を"永久に無料で更新され続ける"かのようなイメージで語られることがある(実際、フリーソフトウェア寄りの論者も、意図してかどうかはともかく、そのように表現することが多い)が、コピーレフトは、ソフトウェアを"永続的に使う機会を保証する"ために、そのソフトウェアのもとになるソースコードの利用の自由を保証する(させる)だけである。エンドユーザが常に改良されたソフトウェアを使えるかどうかとは無関係である点に注意が必要である。
要するに、プロプライエタリなソフトウェアは、なんらかの事情で権利主が更新が停止したら、そのソフトウェアの命脈は文字通りそれまでであるが、コピーレフトであれば、ソースコードを改良する人がいる限り、ソフトウェアの更新も継続される、ということである。逆にいえば、コピーレフトであっても、誰もメンテナが居なければそのソフトウェアはそのままであるし、実際にそういうソフトウェアは多い。
コピーレフトもまたGNUを始めるに当たって、より自由なソフトウェアを定義するための概念である。GPL/LGPLは、コピーレフトを実現する法的に有効なライセンスで、弁護士の協力の元に作られた。
ソフトウェアに例えて言えば、コピーレフトは「アーキテクチャ」であり、GPLはその「実装」ということになる。つまり、コピーレフトを実現するライセンスにはGPL以外にもあり得る。
コピーレフトやGPL自身が、実社会で動作するコンピュータプログラムの様なもので、天才プログラマのストールマンならではの作品だと言える。自由な社会を作り出すプログラムである。「GPLをあなたのソフトウェア/作品に組み込めばそれは、自由な社会を作り出すために自動的に働き始めますよ」と言うわけだ。
GNUなどの考え方としては、コピーレフトなライセンスが「自由な世界のソフトウェアは自由を失うことが難しい」という意味で、より自由ということになる。
これに対して、BSDを始めとしたコピーレフトではないフリーソフトウェアなライセンスは、「自由なソフトウェアが将来自由を失う可能性があり得る」という意味で、コピーレフトに比べて自由さに欠けるとされる。例えば、BSDライセンスで公開されているソフトウェアを改良して公開するとき、必ずしもソースコードを公開しなくても良い。コピーレフトの考え方によれば、このとき「改良されたバージョンは自由が失われている」とされる。
一方、コピーレフトは「自由であること」が失われないために「自由でなければならない」という制約を付けていると見ることもできる。例えば、コピーレフトなソフトウェアを改造して公開する場合、ソースコードの公開を拒むことはできない。コピーレフトなソフトウェアをBSDライセンスで公開することもできない。この意味で、「コピーレフトは制約が強く、BSDライセンスなどに比べて自由でない」と考える人もいる。
詳しくはGNUプロジェクトの「さまざまなライセンスとそれらについての解説[2]」にフリーソフトウェアとして認められるライセンスの一覧があり、必要に応じて更新されている(日本語版は英語版に比べて更新が遅れるので、最新の情報を得る必要があるときは、英語版を参照のこと)。