blog.anqou.net
rss
author
tags

手元の NixOS にいつ最新の Linux kernel が来そうかを調べる

Copy Fail のような Linux kernel の脆弱性が明らかになると、対策が施された新しいバージョンがいつ手元にやってくるかが気になります。NixOS は Linux kernel も含めたソフトウェアの管理を全て GitHub 上の NixOS/nixpkgs で行っているため、これを調べることで、現在どのような状況なのか、いつ欲しいバージョンが手元にやってくるのかがなんとなく分かります。なおここに書いてある方法は我流で、実はもっと良い方法がある気もしますが、とりあえずさらしてみます。

せっかくなので(?)Copy Fail をお題に調べてみます。手元のマシンは NixOS 25.11 なので、6.12 系の LTS を使用しています:

$ uname -r
6.12.83

Linux kernel の ChangeLog を参照すると、Copy Fail の対策が入ったのは 6.12 系では 6.12.85 のようです[1]。これがリリースされたのは今日の 18 時ごろらしいので、まだ手元には入っていません。

nixpkgs 上で、Linux kernel のバージョンは pkgs/os-specific/linux/kernel/kernels-org.json というファイルで管理されています。チャンネルごとに Git のブランチが管理されているため、このファイルを確認する際は適切なブランチを選ぶ必要があります:

現在の nixos-25.11 の kernels-org.json見てみると、6.12.84 が使えることになっています。つまり手元のカーネルは nixpkgs よりも古いらしいです。手元で nix flake update すると(ここで nh os switch して再起動する)更新されました:

$ uname -r
6.12.84

さて Copy Fail の対策がされたのは 6.12.85 でした。これはまだ nixos-25.11 には入っていないようです。なんなら staging-nixos にもまだ入っていません……と書いてしばらくこの原稿を放置していたら、そのあいだに #515023 がマージされていました。ということで staging-nixos に入ったので、しばらくすると master・nixos-unstable にも入るでしょう。ある PR がどこまでマージされたかを調べるには(多分非公式のツールですが)Nixpkgs Pull Request Tracker が便利です。例えば #515023 なら以下のように表示され、staging-nixos まで入っていることが分かります:

nixos-25.11 などに入るためにはこの PR がバックポートされる必要があります。バックポート用の PR も作られていますが現時点ではマージされていません。これも Nixpkgs Pull Request Tracker で参照すると、どこまで進んでいるかを判定できます。

ちなみに、nixos-unstable に入る PR と nixos-25.11 に入るバックポート PR とが別なので、バックポート PR の方が先に進んで unstable よりも先に stable に変更が入ることがあります。実際、執筆時点で nixos-25.11 には 6.12.84 が入っていますが unstable にはまだ入っていないようです。

注釈

  1. “crypto: algif_aead - Revert to operating out-of-place” のコミットがパッチのようです(参考)。