Asahi Linux、MITからGPLへ LLMで書き直す盗用に対抗

白い背景に置かれた茶色の金属の鎖 AI

Apple シリコンの Mac で Linux を動かすプロジェクト Asahi Linux が、11月7日の Progress Report: Linux 7.3 で、すべてのリポジトリを MIT ライセンスから GPL バージョン2以降(GPL-2.0-or-later)へ移し始めると発表しました。開発中のコードが無断で持ち出され、なかには LLM で書き直して出どころを隠したものもあったためです。だれがしたのかは書かれていません。Asahi のコードを使っている人は、取りこむ版のライセンスを確かめる必要が出てきます。

背景と文脈

Asahi Linux は、M1 以降の Mac で Linux を動かすためのブートローダー m1n1、GPU や音声のドライバー、インストーラーなどを作っています。作ったドライバーは Linux カーネルや Mesa(オープンソースのグラフィックスドライバー集)に送り、取りこんでもらってきました。今回の報告でも、音声のドライバー(約3,100行)と動画の再生支援のドライバー(約13,000行)をカーネルに送ったと書いています。

これまでの方針は、できるだけ多くのコードを MIT にすることでした。プロジェクトの著作権のページには、GPL と MIT のどちらでも使える二重ライセンスの書き方として // SPDX-License-Identifier: GPL-2.0+ OR MIT の例が今も載っています。MIT は、著作権表示とライセンス文を残せば、閉じたソフトに組みこんで売ってもかまわないライセンスです。

報告によると、個人のフォークに置いていた開発中の機能のコードが、そのまま持ち出されて出どころを書かずに公開されました。極端な例では、LLM で手早く書き直し、どこから来たコードかをわからなくしていたそうです。報告は、ねらいを Asahi に取って代わって Apple シリコンの Linux でお金をもうけることだと見ています。

報告の見出しは Learning from history(歴史に学ぶ)です。WINE(Windows のソフトを Linux などで動かすためのソフト)も最初は MIT で、2002年に LGPL へ移ったことを例に出しています。MIT については、悪意のある相手を止める例外がなく、こうした使い方もはっきり認めていると書いています。

技術/ビジネス面

柵のそばの岩の上にいるペンギン
Photo by Sindy Süßengut on Unsplash

GPL に変わると、コードを手直しして配る人は、ソースも同じ GPL で出さなければなりません。閉じたまま売るフォークは作れなくなります。choosealicense.com の整理で比べると、違いは次のとおりです。

項目 MIT GPL-2.0
商用利用・改変・配布 できる できる
著作権表示とライセンス文を残す 必要 必要
配るときにソースを出す 不要 必要
手直ししたものを同じライセンスにする 不要 必要
変更したことを書く 不要 必要

or later(以降)が付いているので、受け取った人は GPL バージョン2のほか、FSF がのちに出した版(GPLv3 など)の条件も選べます。報告が書いているのは GPL バージョン2以降だけで、GPLv3 だけにするとは書いていません。

今回の発表は、移行を始めるという段階です。いつまでに、どのリポジトリから変えるかは書かれていません。筆者が見た時点では、Touch Bar を動かす tiny-dfr とインストーラーの asahi-installer の GitHub はまだ MIT のままで、ライセンスを変えるコミットもありませんでした。m1n1 はもともと GPL-2.0 です。

過去に MIT で送られたコードの扱いや、これまでの貢献者の同意についても、報告は何も書いていません。It’s FOSS の記事は、OpenBSD の開発者 Bryan Steele さんの X の投稿を引いて、すべての貢献者の同意を取っていないように見えるという指摘を紹介しています。

Asahi は AI の使い方にも決まりを置いています。LLM policy では、中身のある貢献に生成 AI を使うことを広く禁じています。LLM で書いた issue は閉じられることがあり、使ったことを隠して大量に使った人はすぐに締め出されます。

開発者として試すなら

Asahi のコードを自分の製品や配布物に入れている人は、まず取りこんでいる版のライセンスを確かめましょう。リポジトリの LICENSE だけでなく、ファイルの先頭の SPDX の行も見ておくと、二重ライセンスのファイルを見落としません。手元のクローンで次のように調べられます。

git log --oneline -- LICENSE
grep -rh 'SPDX-License-Identifier' . | sort | uniq -c

一般的な考え方では、すでに MIT で受け取った版は、その版について MIT の条件で使い続けられます。変わるのは、GPL に移ったあとの版を取りこむときです。依存を特定のコミットやタグに固定しておけば、知らないうちに GPL の版を取りこむことを防げます。CI でライセンスを調べている場合は、MIT 以外が来たら止まる設定になっているかを確かめておくと安心です。

自分の OSS のライセンスを考えている人にとっては、GPL で止められることと止められないことの線引きが参考になります。Hacker News のスレッドでは、意見が分かれていました。

  • snvzz さん:AI での書き直しはこれからも起きるが、Asahi の名前が出なくなるだけ
  • reverius42 さん:書き直したものを GPL で出せば済むので、止める力にならないのでは
  • phendrenad2 さん:MIT でも表示を残す義務はある。GPL で防げるのは、閉じた有料のフォーク
  • Someone さん:LLM が GPL のコードを学習していれば、その LLM の書き直しを一から書いたものと言えるかは議論が分かれる

GPL の義務がかかるのは、ソフトを配るときです。ネットワーク越しのサービスとして動かすだけなら、GPL ではソースを出す義務はかかりません。サービスとして使う場合まで縛りたいなら AGPL を選ぶことになります。Asahi のように手元の Mac で動かすソフトなら、配布がほとんどなので GPL でも効き目があります。

逆に、自分が LLM のコーディング支援を使う側なら、他人のリポジトリのコードを LLM に渡して書き直させるのは避けましょう。見た目が変わっても、もとのコードからの派生物と見なされるおそれは残ります。Hacker News でも、書き直しをライセンスのロンダリング(出どころを洗い流すこと)と呼ぶ人がいました。

これからどうなるか

次に見ておきたいのは、実際に LICENSE を変えるコミットがどのリポジトリから入るかです。Asahi の著作権のページは、ほかのプロジェクトに送るコードはそのプロジェクトのライセンスにすると決めています。Mesa は MIT で配られているので、Mesa に送る GPU ドライバーのコードは MIT のままになりそうです。報告はこの点にふれていないため、上流に送るコードの扱いは今後の説明を待つことになります。

LLM での書き直しを理由にライセンスを変えたプロジェクトとして、ほかの OSS が同じ道を選ぶかも気になるところです。It’s FOSS の記事は、AI を理由に大きなプロジェクトが copyleft に移ったのは知る限り初めてだと書いています。

開発者が自分のプロダクトで気をつけたいのは、MIT だと思って取りこんでいた部品が、新しい版から GPL になる場合です。依存の更新のたびに、コードの差分と一緒にライセンスの変化も見るようにしておくと、出荷したあとで気づく事態を防げます。

まとめ

Asahi Linux は、持ち出しや LLM での書き直しを理由に、全リポジトリを GPL-2.0-or-later へ移し始めました。日付や対象の一覧、過去の貢献の扱いはまだ出ていません。Asahi のコードを使っている人は、取りこむ版の LICENSE と SPDX の行を確かめ、依存を版で固定しておきましょう。

参考リンク

アイキャッチ画像: Photo by Karine Avetisyan on Unsplash

タイトルとURLをコピーしました