yay v13 が出た

yay は Go 製の AUR ヘルパー。内部的に pacman をラップしていて、公式リポジトリと AUR の両方を扱える。

v13 のリリースノート を読んだのでまとめる。

PKGBUILD 最終更新時刻の表示

パッケージ検索・アップグレードメニューに、PKGBUILD が最後に更新されてからの経過時間が表示されるようになった。

aur/brave-nightly-bin 1.93.67-1 (+42 1.10) [6h17m]

[6h17m] の部分が新表示。最近更新されたからといって危険とは限らないが、「より注意して PKGBUILD を読め」というシグナルになる。

Lua による設定・フック

~/.config/yay/init.lua に設定やフックを書けるようになった。ファイルが存在しなければ Lua は一切実行されない。config.json は引き続き読み込まれるが init.lua で上書き可能で、CLI フラグが最優先。

フックの種類は以下の3つ。

フック タイミング
UpgradeSelect -Syu でアップグレード候補確定後、除外メニュー前
AURPreInstall PKGBUILD フェッチ直後、ビルド前
AURPostDownload makepkg --verifysource 後、ソースファイルにアクセス可能な状態

たとえば「最近3日以内に更新された AUR パッケージはアップグレードをスキップ」を自動化できる。

yay.create_autocmd("UpgradeSelect", {
    desc = "skip recently modified AUR upgrades",
    callback = function(event)
        local exclude = {}
        local recent_cutoff = os.time() - (3 * 24 * 60 * 60)

        for _, pkg in ipairs(event.data.upgrades) do
            if pkg.repository == "aur" and pkg.last_modified >= recent_cutoff then
                table.insert(exclude, pkg.name)
            end
        end

        return { exclude = exclude, skip_menu = false }
    end,
})

AURpocalypse とは

今回の v13 リリースの背景にあるのが、AUR でのマルウェア混入インシデント(通称 AURpocalypse)。

npm のパッケージ汚染と同じ文脈で、AUR パッケージに悪意あるコードが仕込まれた。これを受けてコミュニティから「npm install のスキャンをしろ」「更新時刻を出せ」「メンテナ変更を追え」といった issue が大量に寄せられた。

作者の立場は明確で、「セキュリティシアター(見せかけのセキュリティ)は避けたい。自動チェックは PKGBUILD レビューの補助であり代替ではない」というもの。

そのうえで出した答えが「フック口だけ用意するから、やりたい人は Lua で書いてくれ」という拡張性の提供だった。本体はシンプルに保ちつつ、カスタマイズ可能にする設計。

なぜ Lua かというと、最初は gRPC プラグイン方式(Vault、Terraform、Grafana で使われるパターン)を検討していたが、セットアップが面倒でバイナリサイズも増大した。インシデント後にコミュニティが Bash スクリプトを大量に書いているのを見て、Lua で十分と判断したとのこと。NeoVim のエコシステムで Lua への親しみが広まっていることも理由の一つ。

Lua API ドキュメントは https://jguer.github.io/yay/lua.html で管理される。

paru の現状

自分は paru を使っている。yay からフォークした Rust 製の AUR ヘルパーで、yay の共同開発者だった Morganamilo が作ったもの。

GitHub を見に行ったところ、最新リリースは v2.1.0(2025年7月8日)で止まっている。約1年リリースがない状態。

issue が 146、PR が 51 積み上がっているが、メンテナは Arch Team での別の責任もあり手が回っていないようだ。

yay が AURpocalypse 対応で v13 を出してきたタイミングで、paru からは何もない。

今すぐ壊れるわけではないけど、セキュリティ周りの新機能が欲しいなら今は yay のほうが手厚い状況ではある。

yay に戻すか、このまま paru を使い続けるか、少し考えようと思う。