use unpatched qt for dev tooling (fmt, lint, devshell)

This commit is contained in:
Damocles 2026-04-20 20:59:06 +02:00
parent e85cd40266
commit 06fb97bc23
2 changed files with 38 additions and 24 deletions

View file

@ -55,8 +55,9 @@
nixpkgs.lib.genAttrs systems (
system:
fn rec {
pkgs = (nixpkgs.legacyPackages.${system}).extend qtbaseOverlay;
treefmt-eval = treefmt-nix.lib.evalModule pkgs treefmt-config;
rawPkgs = nixpkgs.legacyPackages.${system};
pkgs = rawPkgs.extend qtbaseOverlay;
treefmt-eval = treefmt-nix.lib.evalModule rawPkgs treefmt-config;
}
);
in
@ -64,7 +65,7 @@
formatter = forAllSystems ({ treefmt-eval, ... }: treefmt-eval.config.build.wrapper);
packages = forAllSystems (
{ pkgs, ... }:
{ pkgs, rawPkgs, ... }:
let
# Rebuild quickshell against patched Qt via its overlay
qs = (pkgs.extend quickshell.overlays.default).quickshell.override {
@ -94,28 +95,30 @@
pname = "screen-uaf-reproducer-patched";
version = "0";
src = ./test/screen-uaf-reproducer;
nativeBuildInputs = [ pkgs.cmake pkgs.qt6.wrapQtAppsHook ];
nativeBuildInputs = [
pkgs.cmake
pkgs.qt6.wrapQtAppsHook
];
buildInputs = [ pkgs.qt6.qtbase ];
};
screen-uaf-reproducer-unpatched =
let
rawPkgs = nixpkgs.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
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 ];
};
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 ];
};
}
);
devShells = forAllSystems (
{ pkgs, ... }:
{ rawPkgs, ... }:
{
default = pkgs.mkShell {
packages = with pkgs; [
default = rawPkgs.mkShell {
packages = with rawPkgs; [
cargo
rustc
rust-analyzer
@ -129,21 +132,25 @@
);
checks = forAllSystems (
{ pkgs, treefmt-eval }:
{
pkgs,
rawPkgs,
treefmt-eval,
}:
{
formatting = treefmt-eval.config.build.check self;
build = self.packages.${pkgs.stdenv.hostPlatform.system}.default;
nova-stats = self.packages.${pkgs.stdenv.hostPlatform.system}.nova-stats;
docs = self.packages.${pkgs.stdenv.hostPlatform.system}.docs;
qmllint =
pkgs.runCommand "nova-shell-qmllint"
rawPkgs.runCommand "nova-shell-qmllint"
{
nativeBuildInputs = [ pkgs.qt6.qtdeclarative ];
nativeBuildInputs = [ rawPkgs.qt6.qtdeclarative ];
src = self;
}
''
cd $src
export QML_IMPORT_PATH="${pkgs.qt6.qtdeclarative}/lib/qt-6/qml:${
export QML_IMPORT_PATH="${rawPkgs.qt6.qtdeclarative}/lib/qt-6/qml:${
quickshell.packages.${pkgs.stdenv.hostPlatform.system}.default
}/lib/qt-6/qml"
qmllint -E \