From 1bbd720e03fbf58e3c4d2ba1b615870f641db35d Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Tue, 23 Dec 2025 15:09:59 +0200 Subject: [PATCH 1/9] python3.pkgs.pywlroots: add doronbehar to maintainers --- pkgs/development/python-modules/pywlroots/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/pywlroots/default.nix b/pkgs/development/python-modules/pywlroots/default.nix index b5a2a7539c8e..ac99f9d6b957 100644 --- a/pkgs/development/python-modules/pywlroots/default.nix +++ b/pkgs/development/python-modules/pywlroots/default.nix @@ -65,6 +65,9 @@ buildPythonPackage rec { description = "Python bindings to wlroots using cffi"; license = lib.licenses.ncsa; platforms = lib.platforms.linux; - maintainers = with lib.maintainers; [ chvp ]; + maintainers = with lib.maintainers; [ + chvp + doronbehar + ]; }; } From 6b2d0d94b8ad342082499b1d259e0a5a6ed82155 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Tue, 23 Dec 2025 15:10:46 +0200 Subject: [PATCH 2/9] python3.pkgs.xkbcommon: add doronbehar to maintainers --- pkgs/development/python-modules/xkbcommon/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/xkbcommon/default.nix b/pkgs/development/python-modules/xkbcommon/default.nix index f842b6c6a4e3..b5edf3cc2415 100644 --- a/pkgs/development/python-modules/xkbcommon/default.nix +++ b/pkgs/development/python-modules/xkbcommon/default.nix @@ -35,6 +35,9 @@ buildPythonPackage rec { homepage = "https://github.com/sde1000/python-xkbcommon"; description = "Python bindings for libxkbcommon using cffi"; license = lib.licenses.mit; - maintainers = with lib.maintainers; [ chvp ]; + maintainers = with lib.maintainers; [ + chvp + doronbehar + ]; }; } From 61f62965dba54233fb8793dc7801dbe7a6dc6441 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Tue, 23 Dec 2025 15:11:22 +0200 Subject: [PATCH 3/9] wlroots_0_1{7,8,9}: add doronbehar to maintainers --- pkgs/development/libraries/wlroots/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/libraries/wlroots/default.nix b/pkgs/development/libraries/wlroots/default.nix index ea3d8ed42dc3..a68aec6d590b 100644 --- a/pkgs/development/libraries/wlroots/default.nix +++ b/pkgs/development/libraries/wlroots/default.nix @@ -132,6 +132,7 @@ let maintainers = with lib.maintainers; [ synthetica wineee + doronbehar ]; pkgConfigModules = [ ( From c4ed6a99c8049e1df1b8652bd7e4f29ba19ef4bf Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Tue, 23 Dec 2025 15:11:43 +0200 Subject: [PATCH 4/9] python3.pkgs.qtile: add doronbehar to maintainers --- pkgs/development/python-modules/qtile/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/python-modules/qtile/default.nix b/pkgs/development/python-modules/qtile/default.nix index cba3fc7c39a7..e87824dc9575 100644 --- a/pkgs/development/python-modules/qtile/default.nix +++ b/pkgs/development/python-modules/qtile/default.nix @@ -125,6 +125,7 @@ buildPythonPackage rec { maintainers = with lib.maintainers; [ arjan-s sigmanificient + doronbehar ]; }; } From cba0cdb2b4a1b262661709d997f9bf85a56150ad Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Tue, 23 Dec 2025 15:08:18 +0200 Subject: [PATCH 5/9] python3.pkgs.pywlroots: Remove unneeded xorg libraries Package builds without them and with them there aren't any references to them in the `result/`. --- pkgs/development/python-modules/pywlroots/default.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/pkgs/development/python-modules/pywlroots/default.nix b/pkgs/development/python-modules/pywlroots/default.nix index ac99f9d6b957..fc6fe901a288 100644 --- a/pkgs/development/python-modules/pywlroots/default.nix +++ b/pkgs/development/python-modules/pywlroots/default.nix @@ -14,7 +14,6 @@ wayland, pywayland, xkbcommon, - xorg, pytestCheckHook, qtile, }: @@ -37,8 +36,6 @@ buildPythonPackage rec { libinput libxkbcommon pixman - xorg.libxcb - xorg.xcbutilwm udev wayland wlroots From c127010b194a38213b3e7a0b6ac170552902674f Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Tue, 23 Dec 2025 15:40:42 +0200 Subject: [PATCH 6/9] python3.pkgs.qtile: allow to override wlroots version more easily --- pkgs/development/python-modules/qtile/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/qtile/default.nix b/pkgs/development/python-modules/qtile/default.nix index e87824dc9575..80ff05f9b579 100644 --- a/pkgs/development/python-modules/qtile/default.nix +++ b/pkgs/development/python-modules/qtile/default.nix @@ -60,7 +60,8 @@ buildPythonPackage rec { "QTILE_CAIRO_PATH" = "${lib.getDev cairo}/include/cairo"; "QTILE_PIXMAN_PATH" = "${lib.getDev pixman}/include/pixman-1"; "QTILE_LIBDRM_PATH" = "${lib.getDev libdrm}/include/libdrm"; - "QTILE_WLROOTS_PATH" = "${lib.getDev wlroots}/include/wlroots-0.19"; + "QTILE_WLROOTS_PATH" = + "${lib.getDev wlroots}/include/wlroots-${lib.versions.majorMinor wlroots.version}"; }; pypaBuildFlags = [ From 1078e082c5f3c4c0626719c8e873b34cbc3f86e9 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Tue, 23 Dec 2025 16:53:36 +0200 Subject: [PATCH 7/9] python3.pkgs.qtile: remove unneeded dependencies In Qtile's v0.34.0 update in 1da6cbd149a1, it started using wlroots directly instead of using pywlroots. See: https://github.com/flacjacket/pywlroots/issues/201#issuecomment-2641298020 And in particular: https://github.com/qtile/qtile/blob/v0.34.0/CHANGELOG#L8-L10 `pywlroots` also is using explicitly wlroots_0_17, per: https://github.com/NixOS/nixpkgs/blob/1f40d75362b84e714727cd322f809d265ec82fd2/pkgs/top-level/python-packages.nix#L15852 And these wlroots versions contradict each other. --- pkgs/development/python-modules/qtile/default.nix | 6 ------ 1 file changed, 6 deletions(-) diff --git a/pkgs/development/python-modules/qtile/default.nix b/pkgs/development/python-modules/qtile/default.nix index 80ff05f9b579..580a94a25829 100644 --- a/pkgs/development/python-modules/qtile/default.nix +++ b/pkgs/development/python-modules/qtile/default.nix @@ -21,8 +21,6 @@ pulsectl-asyncio, pygobject3, pytz, - pywayland, - pywlroots, pyxdg, setuptools, setuptools-scm, @@ -33,7 +31,6 @@ xcbutilcursor, xcbutilwm, xcffib, - xkbcommon, nixosTests, extraPackages ? [ ], }: @@ -82,11 +79,8 @@ buildPythonPackage rec { pulsectl-asyncio pygobject3 pytz - pywayland - pywlroots pyxdg xcffib - xkbcommon ]; buildInputs = [ From 93893f783ef58257a7468a6275f130e9d5a8d3fc Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Tue, 23 Dec 2025 14:45:19 +0200 Subject: [PATCH 8/9] python3.pkgs.qtile: put pkg-config in nativeBuildInputs It is not part of the Python build system, but rather an executable needed during the build. See: https://github.com/NixOS/nixpkgs/blob/nixos-25.05/doc/languages-frameworks/python.section.md?plain=1#L215-L216 --- pkgs/development/python-modules/qtile/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/python-modules/qtile/default.nix b/pkgs/development/python-modules/qtile/default.nix index 580a94a25829..e303bd4e0514 100644 --- a/pkgs/development/python-modules/qtile/default.nix +++ b/pkgs/development/python-modules/qtile/default.nix @@ -50,6 +50,8 @@ buildPythonPackage rec { build-system = [ setuptools setuptools-scm + ]; + nativeBuildInputs = [ pkg-config ]; From 993e8f1b52613ffead331d4b234acb427600a20b Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Tue, 23 Dec 2025 14:55:16 +0200 Subject: [PATCH 9/9] python3.pkgs.qtile: put wayland-scanner in nativeBuildInputs --- .../python-modules/qtile/default.nix | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/qtile/default.nix b/pkgs/development/python-modules/qtile/default.nix index e303bd4e0514..9862cf8a4145 100644 --- a/pkgs/development/python-modules/qtile/default.nix +++ b/pkgs/development/python-modules/qtile/default.nix @@ -2,6 +2,7 @@ lib, buildPythonPackage, fetchFromGitHub, + fetchpatch, cairocffi, dbus-fast, aiohttp, @@ -47,12 +48,29 @@ buildPythonPackage rec { hash = "sha256-PPyI+IGvHBQusVmU3D26VjYjLaa9+94KUqNwbQSzeaI="; }; + patches = [ + # The patch below makes upstream's build script search for wayland-scanner + # simply in $PATH, and not via `pkg-config`. This allows us to put + # wayland-scanner in nativeBuildInputs and keep using `strictDeps`. See: + # + # https://github.com/qtile/qtile/pull/5726 + # + # Upstream has merged the PR directly - without creating a merge commit, so + # using a range is required. + (fetchpatch { + name = "qtile-PR5726-wayland-scanner-pkg-config.patch"; + url = "https://github.com/qtile/qtile/compare/f0243abee5e6b94ef92b24e99d09037a4f40272b..553845bd17f38a6d1dee763a23c1b015df894794.patch"; + hash = "sha256-hRArLC4nQMAbT//QhQeAUL1o7OCV0zvrlJztDavI0K0="; + }) + ]; + build-system = [ setuptools setuptools-scm ]; nativeBuildInputs = [ pkg-config + wayland-scanner ]; env = { @@ -95,7 +113,6 @@ buildPythonPackage rec { ]; propagatedBuildInputs = [ - wayland-scanner wayland-protocols cffi xcffib