You ever upgrade your system, and you see a bunch of lines, like
evaluation warning: The xorg package set has been deprecated, 'xorg.libxcb' has been renamed to 'libxcb'
evaluation warning: The xorg package set has been deprecated, 'xorg.libXScrnSaver' has been renamed to 'libxscrnsaver'
evaluation warning: The xorg package set has been deprecated, 'xorg.libXinerama' has been renamed to 'libxinerama'
evaluation warning: The xorg package set has been deprecated, 'xorg.libXxf86vm' has been renamed to 'libxxf86vm'
scrolling down your screen? And you know it’s not from your own config? You even double checked with rg xorg.libXinerama?
I spent a couple of days after upgrading my desktop to 26.05 fighting with that myself. Nix doesn’t seem to have any easy way to find where the packages are being installed from. (Please, if there IS a way, PLEASE tell me, because I couldn’t find it!)
My ultimate solution was this rather bruteforce way of searching for the offender.
Note: This requires you to be running Fish as your shell. nix run nixpkgs#fish will get you what you need.
nix flake metadata --json | jq -r '.locks.nodes | to_entries[] | .value.locked | select(.type == "github") | "github:\(.owner)/\(.repo)/\(.rev)"' | sort -u | while read -l flake
set path (nix flake prefetch $flake --json 2>/dev/null | jq -r '.storePath')
if test -n "$path"
set matches (grep -r "xorg\.libXinerama" $path 2>/dev/null)
if test -n "$matches"
echo "=== FOUND IN: $flake ==="
echo $matches
end
end
end
Which resulted in, after a couple minutes:
=== FOUND IN: github:JPyke3/hytale-launcher-nix/7b527a3eeff0ee9a95106a056638a407aef1eb43 ===
/nix/store/fhvdibbbjmlw5lvxlgikn7720c7i61s2-source/package.nix: xorg.libXinerama
Where I discovered at least 2 open PR’s and an issue bringing this up, but the repo’s owner has done nothing to fix. (Hey, no biggie, we all get busy, and it’s not technically a breakage yet!)
Basically, I’m posting this for my OWN memory, and in case anyone else needs it. Because this was a BEAR to track down.