facetimehd: patch out wait_prepare/wait_finish for Linux 7.0

struct vb2_ops dropped wait_prepare and wait_finish in Linux 6.8.
Add a nixpkgs overlay to sed them out of fthd_v4l2.c at build time.

https://claude.ai/code/session_01XEMg2HskwRaQW3nrCd1q2z
This commit is contained in:
Claude 2026-04-19 11:18:58 +00:00
parent 3b4714c722
commit 293e3306b3
No known key found for this signature in database

View file

@ -34,6 +34,20 @@
hardware.enableRedistributableFirmware = true;
hardware.facetimehd.enable = true;
# wait_prepare/wait_finish were removed from struct vb2_ops in Linux 6.8
nixpkgs.overlays = [
(final: prev: {
linuxPackagesFor = kernel: (prev.linuxPackagesFor kernel).extend (lpFinal: lpPrev: {
facetimehd = lpPrev.facetimehd.overrideAttrs (old: {
postPatch = (old.postPatch or "") + ''
sed -i '/\.wait_prepare[[:space:]]*=.*vb2_ops_wait_prepare/d' fthd_v4l2.c
sed -i '/\.wait_finish[[:space:]]*=.*vb2_ops_wait_finish/d' fthd_v4l2.c
'';
});
});
})
];
nixpkgs.config.allowInsecurePredicate = pkg:
(lib.hasPrefix "broadcom-sta" (lib.getName pkg));