sam: Pin old spice-vdagent

25.11 and unstable are using spice-vdagent 0.23.0, which doesn't seem to
work for display resizing. (It's likely that it's just a config error,
but this appears to revert it for now. I'll probably try to report/fix
the bug upstream at some point now that I've identified it.)

For future reference, here's how I bisected the problem to this package:

I didn't want to have to deal with compiling the universe from source to
check each commit, so I started with the commits that nixos-unstable
once pointed to, which would have been built by Hydra and cached. I used
`npc` for this:

    git clone git@github.com:samestep/npc
    NPC_REV=main NIX_BIN=`which nix` GIT_BIN=`which git` cargo build --release
    ~/projects/npc/target/release/npc fetch  # I wasn't able to find a way around this
    ~/projects/npc/target/release/npc bisect start nixos-unstable
    ~/projects/npc/target/release/npc bisect bad nixos-unstable # currently broken
    ~/projects/npc/target/release/npc bisect good f02fddb8acef29a8b32f10a335d44828d7825b78 # formerly working

`npc` will then print out commit hashes for me to try, which I can
check out and run:

    git -C ~/projects/nixpkgs checkout b6a8526db03f735b89dd5ff348f53f752e7ddc8e
    sudo nixos-rebuild -I nixpkgs="/home/chandler/projects/nixpkgs" boot && reboot
    ~/projects/npc/target/release/npc bisect <good|bad> $(git -C ~/projects/nixpkgs rev-parse HEAD)

This process repeats until it identifies a good and bad commit:

    $ ~/projects/npc/target/release/npc bisect good $(git -C ~/projects/nixpkgs rev-parse HEAD)
    done bisecting nixos-unstable
    8913c168d1c56dc49a7718685968f38752171c3b is the first bad commit
    7df7ff7d8e00218376575f0acdcc5d66741351ee is the last good commit

Now, there's still a pretty big gap here, so I'll want to do some
further bisection!

    [chandler@sam:~/projects/nixpkgs]$ git rev-list --count 7df7ff7d..8913c168
    3099

    [chandler@sam:~/projects/nixpkgs]$ git diff --shortstat 7df7ff7d..8913c168
     3716 files changed, 45544 insertions(+), 38260 deletions(-)

Now I can do a regular `git bisect`:

    $ git -C ~/projects/nixpkgs bisect start
    $ git -C ~/projects/nixpkgs bisect good 7df7ff7d8e00218376575f0acdcc5d66741351ee
    $ git -C ~/projects/nixpkgs bisect bad 8913c168d1c56dc49a7718685968f38752171c3b
    $ # …
    $ git -C ~/projects/nixpkgs bisect bad
    1491cf86eb405b21e518f1a94763524de36ee661 is the first bad commit
    commit 1491cf86eb405b21e518f1a94763524de36ee661 (HEAD)
    Author: R. RyanTM <ryantm-bot@ryantm.com>
    Date:   Tue Sep 23 12:31:00 2025 +0000

        spice-vdagent: 0.22.1 -> 0.23.0

     pkgs/by-name/sp/spice-vdagent/package.nix | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)

For this, I removed basically all packages, so I wouldn't have to
rebuild e.g. chromium from source! I did end up rebuilding the kernel
once, which took a while; most of the bisect steps didn't actually make
any changes so the whole process was pretty fast.
This commit is contained in:
Chandler Swift 2026-02-03 09:34:33 -06:00
parent d5647dff3a
commit 10bdad00d8
No known key found for this signature in database
GPG key ID: B123483B24A4D579

View file

@ -24,6 +24,18 @@
# Use latest kernel.
boot.kernelPackages = pkgs.linuxPackages_latest;
nixpkgs.overlays = [
(final: prev: {
spice-vdagent = prev.spice-vdagent.overrideAttrs ( old: rec {
version = "0.22.1";
src = prev.fetchurl {
url = "https://www.spice-space.org/download/releases/spice-vdagent-${version}.tar.bz2";
hash = "sha256-k7DRWspHYsx9N5sXmnEBFJ267WK3IRL/+ys+kLEWh6A=";
};
});
})
];
networking.hostName = "sam"; # Define your hostname.
# Enable networking