rewrite reproducer as quickshell qml config with layer-shell surfaces

This commit is contained in:
Damocles 2026-04-20 22:01:48 +02:00
parent 6fedbd72aa
commit f00308b1f0
6 changed files with 72 additions and 125 deletions

View file

@ -89,28 +89,21 @@
docs = pkgs.callPackage ./nix/docs.nix { inherit self; };
default = nova-shell;
# Reproducer for the qtbase wayland screen UAF, built twice:
# patched (should survive) and unpatched (should crash).
screen-uaf-reproducer-patched = pkgs.stdenv.mkDerivation {
pname = "screen-uaf-reproducer-patched";
version = "0";
src = ./test/screen-uaf-reproducer;
nativeBuildInputs = [
pkgs.cmake
pkgs.qt6.wrapQtAppsHook
];
buildInputs = [ pkgs.qt6.qtbase ];
};
screen-uaf-reproducer-unpatched = rawPkgs.stdenv.mkDerivation {
pname = "screen-uaf-reproducer-unpatched";
version = "0";
src = ./test/screen-uaf-reproducer;
nativeBuildInputs = [
rawPkgs.cmake
rawPkgs.qt6.wrapQtAppsHook
];
buildInputs = [ rawPkgs.qt6.qtbase ];
};
# Reproducer wrappers: run test/screen-uaf-reproducer/shell.qml
# with patched vs unpatched quickshell to confirm the fix.
screen-uaf-reproducer-patched = pkgs.writeShellScriptBin "screen-uaf-reproducer-patched" ''
exec ${qs}/bin/quickshell -p ${./test/screen-uaf-reproducer/shell.qml}
'';
screen-uaf-reproducer-unpatched =
let
qsUnpatched = (rawPkgs.extend quickshell.overlays.default).quickshell.override {
withX11 = false;
withI3 = false;
};
in
rawPkgs.writeShellScriptBin "screen-uaf-reproducer-unpatched" ''
exec ${qsUnpatched}/bin/quickshell -p ${./test/screen-uaf-reproducer/shell.qml}
'';
}
);