Yay diff question?

Of course. I just wanted to show the full output.

Good news continues. Once again, yay is showing me the PKGBUILD diffs… (despite seemingly citing 1 archcanary as one to cleanbuild despite my answering otherwise):

[ejm@mbp ~]$ yay
[sudo] password for ejm: 
:: Synchronizing package databases...
 endeavouros                                   14.8 KiB  10.4 KiB/s 00:01 [------------------------------------------] 100%
 core                                         127.4 KiB   518 KiB/s 00:00 [------------------------------------------] 100%
 extra                                          8.5 MiB  6.79 MiB/s 00:01 [------------------------------------------] 100%
 multilib is up to date
:: Searching AUR for updates...
:: Searching databases for updates...
 -> Packages not in AUR: endeavouros-skel-default  endeavouros-skel-i3wm  icons-in-terminal  pantum-m6200-m6500-m6550-m6600-ms6000-driver
 -> archcanary: PKGBUILD modified 6h ago — review carefully
:: 30 packages to upgrade/install.
30  core/libpcap                  1.10.7-1      -> 1.11.0-1
29  core/linux                    7.2.4.arch1-2 -> 7.2.6.arch2-1
28  core/linux-firmware           20260910-1    -> 20260910-2
27  core/linux-firmware-amd       20260910-1    -> 20260910-2
26  core/linux-firmware-amdgpu    20260910-1    -> 20260910-2
25  core/linux-firmware-atheros   20260910-1    -> 20260910-2
24  core/linux-firmware-broadcom  20260910-1    -> 20260910-2
23  core/linux-firmware-cirrus    20260910-1    -> 20260910-2
22  core/linux-firmware-intel     20260910-1    -> 20260910-2
21  core/linux-firmware-mediatek  20260910-1    -> 20260910-2
20  core/linux-firmware-nvidia    20260910-1    -> 20260910-2
19  core/linux-firmware-other     20260910-1    -> 20260910-2
18  core/linux-firmware-radeon    20260910-1    -> 20260910-2
17  core/linux-firmware-realtek   20260910-1    -> 20260910-2
16  core/linux-firmware-ti        20260910-1    -> 20260910-2
15  core/linux-firmware-whence    20260910-1    -> 20260910-2
14  core/linux-headers            7.2.4.arch1-2 -> 7.2.6.arch2-1
13  core/linux-lts                6.18.51-1     -> 6.18.52-1
12  core/linux-lts-headers        6.18.51-1     -> 6.18.52-1
11  extra/bpf                     7.2.5-1       -> 7.2.6-1
10  extra/github-cli              2.100.0-1     -> 2.101.0-1
 9  extra/libde265                1.1.2-1       -> 1.1.3-1
 8  extra/libmupdf                1.28.3-1      -> 1.28.3-2
 7  extra/linux-zen               7.2.4.zen2-1  -> 7.2.6.zen2-1
 6  extra/linux-zen-headers       7.2.4.zen2-1  -> 7.2.6.zen2-1
 5  extra/pahole                  1:1.31-2      -> 1:1.32-1
 4  extra/perl-alien-build        2.84-5        -> 2.87-1
 3  extra/python-coverage         7.16.0-1      -> 7.16.1-1
 2  extra/python-tzdata           2026.3-1      -> 2026.4-1
 1  aur/archcanary                0.1.36-1      -> 0.1.36-2 [6h30m]
==> Packages to exclude: (eg: "1 2 3", "1-3", "^4" or repo name)
 -> Excluding packages may cause partial upgrades and break systems
==> 
Sync Explicit (9): linux-lts-headers-6.18.52-1, linux-zen-7.2.6.zen2-1, linux-7.2.6.arch2-1, linux-zen-headers-7.2.6.zen2-1, bpf-7.2.6-1, linux-lts-6.18.52-1, github-cli-2.101.0-1, linux-headers-7.2.6.arch2-1, linux-firmware-20260910-2
Sync Dependency (20): linux-firmware-other-20260910-2, python-coverage-7.16.1-1, linux-firmware-amd-20260910-2, libpcap-1.11.0-1, linux-firmware-cirrus-20260910-2, libmupdf-1.28.3-2, linux-firmware-radeon-20260910-2, libde265-1.1.3-1, linux-firmware-realtek-20260910-2, linux-firmware-mediatek-20260910-2, linux-firmware-broadcom-20260910-2, perl-alien-build-2.87-1, linux-firmware-intel-20260910-2, linux-firmware-ti-20260910-2, linux-firmware-amdgpu-20260910-2, linux-firmware-whence-20260910-2, linux-firmware-nvidia-20260910-2, pahole-1:1.32-1, linux-firmware-atheros-20260910-2, python-tzdata-2026.4-1
AUR Explicit (1): archcanary-0.1.36-2
:: (1/1) Downloaded PKGBUILD: archcanary
  1 archcanary                       (Installed) (Build Files Exist)
==> Packages to cleanBuild?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==> n
  1 archcanary                       (Installed) (Build Files Exist)
==> Diffs to show?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==> a
diff --git /home/ejm/.cache/yay/archcanary/PKGBUILD /home/ejm/.cache/yay/archcanary/PKGBUILD
new file mode 100644
index 56e121a..5cd2701 100644
--- /home/ejm/.cache/yay/archcanary/PKGBUILD
+++ /home/ejm/.cache/yay/archcanary/PKGBUILD
@@ -1,11 +1,11 @@
 # Maintainer: musqz <gummy-fang-deputy@duck.com>
 pkgname=archcanary
 pkgver=0.1.36
-pkgrel=1
+pkgrel=2
 pkgdesc="Layered security detection stack for Arch Linux — malicious AUR packages, systemd/eBPF persistence, npm/bun cache poisoning, kernel module tampering"
 arch=('any')
 url="https://github.com/musqz/archcanary"
-license=('MIT')
+license=('GPL-3.0-only')
 depends=('bash' 'pacman')
 optdepends=(
   'libnotify: desktop alerts on infected scan result'

:: Proceed with install? [Y/n] 

I have something to contribute here.

@ArchieLinux @dalto @UncleSpellbinder

This also produces nothing for me grep answerclean ~/.config/yay/config.json


I always though of this as a feature. e.g. today I updated apache-tools. It was already installed!
But I never asked to see the diff for that pkg. When I ask for the diff the very first time it compares /dev/null with current.

Each subsequent update shows the diff from the last time I displayed the diff.
So if a new update would roll in for apache-tools now and I would ask for the diff, it would compare with the previous diff I saw and no longer /dev/null.

I had the same behavior (although this was a long time ago on a fresh install and 2nd update) happen across all my aur pkgs like google-chrome, vscode, … .
The first time I asked to see the diff it showed me nothing.


tldr: diff with yay for a pkg only produces a “good output” if you requested a diff for that pkg before.

yay only caches the PKGBUILD file after viewing them.