From unknown Tue Jun 17 22:29:50 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#76038] qtile definitions to make it runs on wayland Resent-From: Orahcio Felicio de Sousa Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 04 Feb 2025 02:18:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 76038 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: 76038@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.173863545524527 (code B ref -1); Tue, 04 Feb 2025 02:18:02 +0000 Received: (at submit) by debbugs.gnu.org; 4 Feb 2025 02:17:35 +0000 Received: from localhost ([127.0.0.1]:41960 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tf8VJ-0006NW-Tj for submit@debbugs.gnu.org; Mon, 03 Feb 2025 21:17:35 -0500 Received: from lists.gnu.org ([2001:470:142::17]:54476) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tf8VC-0006N8-GU for submit@debbugs.gnu.org; Mon, 03 Feb 2025 21:17:30 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tf8V4-0004or-SZ for guix-patches@gnu.org; Mon, 03 Feb 2025 21:17:19 -0500 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tf8V2-0007Wc-9t for guix-patches@gnu.org; Mon, 03 Feb 2025 21:17:18 -0500 Received: by mail-wr1-x432.google.com with SMTP id ffacd0b85a97d-3862b40a6e0so3006787f8f.0 for ; Mon, 03 Feb 2025 18:17:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738635433; x=1739240233; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=SReQ6fu13AlTDAT2mAxAxogSNtq94EFFwWhTJEa7gI4=; b=bD4ZTB16lsttDSIcomvujq5TN/vvKztkVwewVGfMN+6jZDpdTfYnEO97kV23m0MAbx iKh5/BrZ38P8QuVIjwIunqsgmfB6G+/9mokw6ZSagTJYmq8qHxJdrqcHxauhh5pXx5oA SeHqVqrY0Cqa9X55IvkJQXbGQG1HheYAJqeDNTdZc0+8NrQ3u98Sz3zL3seQc7b7eQSK 0jhiY5GHEPF7pxB1I+QmGqHyTS/1zkapWtuQYRYMmA6OWTaj4bkm9E8mmeHeye1uVdrD IGbDYwwiTR2aZh5m1O4bOV7hLpfCYE4CYHJ9uiy2ob0RsZQTp7BlQ+8vn6bYAf6IVT20 bVOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738635433; x=1739240233; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=SReQ6fu13AlTDAT2mAxAxogSNtq94EFFwWhTJEa7gI4=; b=XwG90m6ZVHh/Cw+Fe0svA7+2j85XXpqdYdF3F7y/9ge//nk2zHRmInhcwV7T0GWbYW 1bsU7EsHfuJhyp1law4f3fGN23gOUbdqy/1AMBq4+cnZ96djuXT0+ibBDHjT9a++NALf PxHswPD+lxV72IROo3X8CzVguSrdrPnZvppeFtv9SBcQkWQpt5fDOlitJ5xfTtEX+BbJ IHdhwCmIa62/axUMj/tZWGYf/X3SUf+eEZk8s9ITz1nQTpwLHchPufb9sHbJDo6+T2mi QpSHLEYZAnrpqh0EN5NosPSJPI4bkW0+Yt+BSAT01QlMUlM6MtprOyJpCdi9HeQ7FeUy 3VhQ== X-Gm-Message-State: AOJu0Ywzys21Uc5pmVJL5ZhshD/eqvJ/ZdhJ7sKxC5wIZgDTG+BL/SLN BWNU02XpGYGLUHeE10swcHfvN8OybJ1fyQ7fpS1hFtXVsrqyMkVDiMKuJDzDrsQQNwzx18BevaF E41MDxp2UFpB/9XXO3k//oOwK+T7WY9s4jHs= X-Gm-Gg: ASbGncttIDa3FDh+qAiNoNcjpXCB9YA6XN0r4gRaEyrPJf5RCLiDB3jnSctR4OB+ndB DoyDaaAmAx+bpPZV5bWv5zznwMyAk8CqTAtmTeFTHbfvp8i7VGPR57atZE+LHkW67WErmHJSIgx M= X-Google-Smtp-Source: AGHT+IEiWCGXtcf3sBEgDkR92jLen7WWsxOcE61jTP+xNEZMfXzEHONO0uwBDgnvLke9a93KQVKbl2k/DH0d1F4Nwss= X-Received: by 2002:a05:6000:1ac9:b0:38c:5b9e:ab83 with SMTP id ffacd0b85a97d-38c5b9eac5dmr16512120f8f.40.1738635433157; Mon, 03 Feb 2025 18:17:13 -0800 (PST) MIME-Version: 1.0 From: Orahcio Felicio de Sousa Date: Tue, 4 Feb 2025 02:17:00 +0000 X-Gm-Features: AWEUYZkbD9Rpt2tSuwyG_4bF_jbGezPa7_9tQ20Sp9-_ay6rLC5ttHCk7RGe9uc Message-ID: Content-Type: multipart/alternative; boundary="000000000000632bc2062d479bd7" Received-SPF: pass client-ip=2a00:1450:4864:20::432; envelope-from=orahcio@gmail.com; helo=mail-wr1-x432.google.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_SBL_A=0.1 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.7 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: When I run `qtile -b wayland` qtile gives an error, it does not find the wlroots library. I could package some dependencies and then make some changes on the official qtile recipe. I don't know how to [...] Content analysis details: (1.7 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2001:470:142:0:0:0:0:17 listed in] [list.dnswl.org] 0.1 URIBL_SBL_A Contains URL's A record listed in the Spamhaus SBL blocklist [URIs: qtile.org] 0.6 URIBL_SBL Contains an URL's NS IP listed in the Spamhaus SBL blocklist [URIs: qtile.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (orahcio[at]gmail.com) -0.0 SPF_HELO_PASS SPF: HELO matches SPF record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.0 HTML_MESSAGE BODY: HTML included in message X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.7 (/) --000000000000632bc2062d479bd7 Content-Type: text/plain; charset="UTF-8" When I run `qtile -b wayland` qtile gives an error, it does not find the wlroots library. I could package some dependencies and then make some changes on the official qtile recipe. I don't know how to send a patch, but I will append my-qtile (based on the official one) and its additional dependencies to run on wayland. Additional dependencies for qtile-wayland: python-pywlroots, python-pywayland, python-xkbcommon. wlroots-0.17 needs to build qtile-wayland and python-pywlroots, the last version on guix gives error. qtile and pywlroots staff like to use "/usr/include" to find pixman and libdrm headers, I use (substitute* to give the guix path after 'unpack phase. (define-module (python-qtile) #:use-module (gnu packages check) #:use-module (gnu packages freedesktop) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) #:use-module (gnu packages libffi) #:use-module (gnu packages mpd) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python-build) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-xyz) #:use-module (gnu packages time) #:use-module (gnu packages wm) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xorg) #:use-module (guix download) #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix licenses) #:use-module (guix build-system python) #:use-module (guix build-system pyproject)) (define-public qtile-wayland (package (name "qtile-wayland") (version "0.30.0") (source (origin (method url-fetch) (uri (pypi-uri "qtile" version)) (sha256 (base32 "0zd2bh4mvgwjxkkwn3angkaqzm7ldcmzg3gdc098jzzlf90fmywm")))) (build-system pyproject-build-system) (arguments (list ;; A lot of tests fail despite Xvfb and writable temp/cache space. #:tests? #f #:test-flags #~(list "--ignore=test/widgets/test_widget_init_configure.py") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'patch-paths (lambda* (#:key inputs #:allow-other-keys) (substitute* "libqtile/pangocffi.py" (("^(gobject = ffi.dlopen).*" all def) (format #f "~a(~s)~%" def (search-input-file inputs "/lib/libgobject-2.0.so.0"))) (("^(pango = ffi.dlopen).*" all def) (format #f "~a(~s)~%" def (search-input-file inputs "/lib/libpango-1.0.so.0"))) (("^(pangocairo = ffi.dlopen).*" all def) (format #f "~a(~s)~%" def (search-input-file inputs "/lib/libpangocairo-1.0.so.0")))) (substitute* "libqtile/backend/wayland/cffi/build.py" (("/usr/include/pixman-1") (string-append #$pixman "/include/pixman-1")) (("/usr/include/libdrm") (string-append #$libdrm "/include/libdrm"))))) (add-after 'install 'install-xsessions (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (xsessions (string-append out "/share/xsessions")) (qtile (string-append out "/bin/qtile start"))) (mkdir-p xsessions) (copy-file "resources/qtile.desktop" (string-append xsessions "/qtile.desktop")) (substitute* (string-append xsessions "/qtile.desktop") (("qtile start") qtile))))) (add-before 'check 'pre-check (lambda* (#:key tests? #:allow-other-keys) (when tests? (setenv "HOME" "/tmp") (system "Xvfb :1 &") (setenv "DISPLAY" ":1") (setenv "XDG_CACHE_HOME" "/tmp"))))))) (inputs (list glib pango pulseaudio wlroots-0.17 pixman libdrm)) (propagated-inputs (list python-cairocffi python-cffi python-dateutil python-dbus-fast python-iwlib python-keyring python-libcst python-mpd2 python-pygobject python-pyxdg python-xcffib python-pywlroots python-pywayland python-xkbcommon)) (native-inputs (list pkg-config python-flake8 python-pep8-naming python-pytest python-pytest-cov python-psutil python-setuptools python-setuptools-scm python-wheel xorg-server-for-tests)) (home-page "http://qtile.org") (synopsis "Hackable tiling window manager written and configured in Python") (description "Qtile is simple, small, and extensible. It's easy to write your own layouts, widgets, and built-in commands.") (license expat))) (define-public python-pywlroots (package (name "python-pywlroots") (version "0.17.0") (source (origin (method url-fetch) (uri " https://github.com/flacjacket/pywlroots/archive/refs/tags/v0.17.0.tar.gz") (sha256 (base32 "1ghbsdgmgpzhmfgr614bglmrlsgdl1bgdl1lg0y1i6cs9750qyv6")))) (build-system python-build-system) (arguments (list #:phases #~(modify-phases %standard-phases (add-before 'build 'set-pixman-path (lambda _ (substitute* "wlroots/ffi_build.py" (("/usr/include/pixman-1") (string-append #$pixman "/include/pixman-1")))))))) (inputs (list wlroots-0.17 pixman)) (propagated-inputs (list python-cffi python-pywayland python-xkbcommon)) (native-inputs (list python-cffi python-pytest python-setuptools python-wheel)) ;; (inputs (list wlroots-0.17)) (home-page "https://github.com/flacjacket/pywlroots") (synopsis "Python binding to the wlroots library using cffi") (description "Python binding to the wlroots library using cffi.") (license ncsa))) (define-public python-pywayland (package (name "python-pywayland") (version "0.4.18") (source (origin (method url-fetch) (uri (pypi-uri "pywayland" version)) (sha256 (base32 "0cv5aqn23id31mn95q6isn5vcnjcd4dvaqzn52ihbb9sg01dx2jr")))) (build-system pyproject-build-system) (arguments (list #:tests? #f)) (propagated-inputs (list python-cffi)) (native-inputs (list python-cffi python-pytest python-setuptools python-wheel wayland wayland-protocols pkg-config)) (home-page "https://github.com/flacjacket/pywayland") (synopsis "Python bindings for the libwayland library written in pure Python") (description "Python bindings for the libwayland library written in pure Python.") (license asl2.0))) (define-public python-xkbcommon (package (name "python-xkbcommon") (version "1.5.1") (source (origin (method url-fetch) (uri (pypi-uri "xkbcommon" version)) (sha256 (base32 "0dnwbp8rriwkmsa8a40cpvrccjy7m8xz6jw0vbcka7gnvc44h5xc")))) (build-system pyproject-build-system) (propagated-inputs (list python-cffi)) (native-inputs (list python-setuptools python-wheel libxkbcommon)) (home-page "https://github.com/sde1000/python-xkbcommon") (synopsis "Bindings for libxkbcommon using cffi") (description "Bindings for libxkbcommon using cffi.") (license expat))) --000000000000632bc2062d479bd7 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
When I run `qtile -b wayland` qtile gives an error, it doe= s not find the wlroots library. I could package some dependencies and then = make some changes on the official qtile recipe. I don't know how to sen= d a patch, but I will append my-qtile (based on the official one) and its a= dditional dependencies to run on wayland.=C2=A0

Addition= al dependencies for qtile-wayland:=C2=A0python-pywlroots,=C2=A0python-pyway= land,=C2=A0python-xkbcommon.
wlroots-0.17 needs to build qtile-wa= yland and python-pywlroots, the last version on guix gives error.
qtile and pywlroots staff like to use "/usr/include" to find pix= man and libdrm headers, I use (substitute* to give the guix path after '= ;unpack phase.

(define-module (python-qtile)
=C2= =A0 #:use-module (gnu packages check)
=C2=A0 #:use-module (gnu packages = freedesktop)
=C2=A0 #:use-module (gnu packages glib)
=C2=A0 #:use-mod= ule (gnu packages gtk)
=C2=A0 #:use-module (gnu packages libffi)
=C2= =A0 #:use-module (gnu packages mpd)
=C2=A0 #:use-module (gnu packages pk= g-config)
=C2=A0 #:use-module (gnu packages pulseaudio)
=C2=A0 #:use-= module (gnu packages python-build)
=C2=A0 #:use-module (gnu packages pyt= hon-crypto)
=C2=A0 #:use-module (gnu packages python-xyz)
=C2=A0 #:us= e-module (gnu packages time)
=C2=A0 #:use-module (gnu packages wm)
= =C2=A0 #:use-module (gnu packages xdisorg)
=C2=A0 #:use-module (gnu pack= ages xorg)
=C2=A0 #:use-module (guix download)
=C2=A0 #:use-module (g= uix gexp)
=C2=A0 #:use-module (guix packages)
=C2=A0 #:use-module (gu= ix licenses)
=C2=A0 #:use-module (guix build-system python)
=C2=A0 #:= use-module (guix build-system pyproject))

(define-public qtile-wayla= nd
=C2=A0 (package
=C2=A0 =C2=A0(name "qtile-wayland")
= =C2=A0 =C2=A0(version "0.30.0")
=C2=A0 =C2=A0(source
=C2=A0= =C2=A0 (origin
=C2=A0 =C2=A0 =C2=A0(method url-fetch)
=C2=A0 =C2=A0 = =C2=A0(uri (pypi-uri "qtile" version))
=C2=A0 =C2=A0 =C2=A0(sh= a256
=C2=A0 =C2=A0 =C2=A0 (base32 "0zd2bh4mvgwjxkkwn3angkaqzm7ldcmz= g3gdc098jzzlf90fmywm"))))
=C2=A0 =C2=A0(build-system pyproject-buil= d-system)
=C2=A0 =C2=A0(arguments
=C2=A0 =C2=A0 (list
=C2=A0 =C2= =A0 =C2=A0;; A lot of tests fail despite Xvfb and writable temp/cache space= .
=C2=A0 =C2=A0 =C2=A0#:tests? #f
=C2=A0 =C2=A0 =C2=A0#:test-flags=C2=A0 =C2=A0 =C2=A0#~(list "--ignore=3Dtest/widgets/test_widget_init= _configure.py")
=C2=A0 =C2=A0 =C2=A0#:phases
=C2=A0 =C2=A0 =C2= =A0#~(modify-phases %standard-phases
=C2=A0 =C2=A0 =C2=A0(add-after &= #39;unpack 'patch-paths
(lambda* (#:key inputs #:allow-other-ke= ys)
=C2=A0 (substitute* "libqtile/pangocffi.py"
= (("^(gobject =3D ffi.dlopen).*" all def)
(format #f &qu= ot;~a(~s)~%" def
(search-input-file inputs "/lib/libgo= bject-2.0.so.0")))
(("^(pango =3D ffi.dlopen).*" al= l def)
(format #f "~a(~s)~%" def
(search-inp= ut-file inputs "/lib/libpango-1.0.so.0")))
(("^(pan= gocairo =3D ffi.dlopen).*" all def)
(format #f "~a(~s)~= %" def
(search-input-file
=C2=A0inputs "/li= b/libpangocairo-1.0.so.0"))))
=C2=A0 (substitute* "libqti= le/backend/wayland/cffi/build.py"
(("/usr/include/pixman= -1")
(string-append #$pixman
"/include/pixma= n-1"))
(("/usr/include/libdrm")
(string-a= ppend #$libdrm
"/include/libdrm")))))
=C2=A0 =C2= =A0 =C2=A0(add-after 'install 'install-xsessions
(lambda* (= #:key outputs #:allow-other-keys)
=C2=A0 (let* ((out (assoc-ref out= puts "out"))
=C2=A0(xsessions (string-append out "/= share/xsessions"))
=C2=A0(qtile (string-append out "/bin= /qtile start")))
=C2=A0 =C2=A0 (mkdir-p xsessions)
=C2= =A0 =C2=A0 (copy-file "resources/qtile.desktop"
(string-= append xsessions "/qtile.desktop"))
=C2=A0 =C2=A0 (substi= tute* (string-append xsessions "/qtile.desktop")
=C2=A0= (("qtile start") qtile)))))
=C2=A0 =C2=A0 =C2=A0(add-before= 'check 'pre-check
=C2=A0(lambda* (#:key tests? #:allow-oth= er-keys)
=C2=A0 =C2=A0(when tests?
=C2=A0 =C2=A0 =C2=A0(set= env "HOME" "/tmp")
=C2=A0 =C2=A0 =C2=A0(system = "Xvfb :1 &")
=C2=A0 =C2=A0 =C2=A0(setenv "DISPLA= Y" ":1")
=C2=A0 =C2=A0 =C2=A0(setenv "XDG_CACHE= _HOME" "/tmp")))))))
=C2=A0 =C2=A0(inputs
=C2=A0 =C2= =A0 (list glib pango pulseaudio wlroots-0.17 pixman libdrm))
=C2=A0 =C2= =A0(propagated-inputs
=C2=A0 =C2=A0 (list python-cairocffi
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 python-cffi
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = python-dateutil
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 python-dbus-fast
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 python-iwlib
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 python-keyring
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 python-libc= st
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 python-mpd2
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 python-pygobject
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 py= thon-pyxdg
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 python-xcffib
=C2=A0p= ython-pywlroots
=C2=A0python-pywayland
=C2=A0python-xkbcommon))=C2=A0 =C2=A0(native-inputs
=C2=A0 =C2=A0 (list pkg-config
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 python-flake8
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 python-pep8-naming
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 python-pyte= st
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 python-pytest-cov
=C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 python-psutil
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 p= ython-setuptools
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 python-setuptools-sc= m
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 python-wheel
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 xorg-server-for-tests))
=C2=A0 =C2=A0(home-page "= http://qtile.org")
=C2=A0 =C2=A0(s= ynopsis "Hackable tiling window manager written and configured in Pyth= on")
=C2=A0 =C2=A0(description "Qtile is simple, small, and ex= tensible.=C2=A0 It's easy to write
your own layouts, widgets, and bu= ilt-in commands.")
=C2=A0 =C2=A0(license expat)))

(define-pu= blic python-pywlroots
=C2=A0 (package
=C2=A0 =C2=A0 (name "pytho= n-pywlroots")
=C2=A0 =C2=A0 (version "0.17.0")
=C2=A0 = =C2=A0 (source
=C2=A0 =C2=A0 =C2=A0(origin
=C2=A0 =C2=A0 =C2=A0 =C2= =A0(method url-fetch)
=C2=A0 =C2=A0 =C2=A0 =C2=A0(uri "ht= tps://github.com/flacjacket/pywlroots/archive/refs/tags/v0.17.0.tar.gz&= quot;)
=C2=A0 =C2=A0 =C2=A0 =C2=A0(sha256
=C2=A0 =C2=A0 =C2=A0 =C2=A0= (base32 "1ghbsdgmgpzhmfgr614bglmrlsgdl1bgdl1lg0y1i6cs9750qyv6"))= ))
=C2=A0 =C2=A0 (build-system python-build-system)
=C2=A0 =C2=A0 (ar= guments (list #:phases
=C2=A0 =C2=A0 #~(modify-phases %standard-phase= s
=C2=A0 =C2=A0 =C2=A0(add-before 'build 'set-pixman-path =C2=A0(lambda _
=C2=A0 =C2=A0(substitute* "wlroots/= ffi_build.py"
(("/usr/include/pixman-1")
= =C2=A0(string-append #$pixman
"/include/pixman-1&qu= ot;))))))))
=C2=A0 =C2=A0 (inputs (list wlroots-0.17 pixman))
=C2=A0 = =C2=A0 (propagated-inputs (list python-cffi python-pywayland python-xkbcomm= on))
=C2=A0 =C2=A0 (native-inputs (list python-cffi python-pytest python= -setuptools
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0python-wheel))
;; =C2=A0 =C2=A0(inputs (l= ist wlroots-0.17))
=C2=A0 =C2=A0 (home-page "https://github.com/flacjacket/pywlroots&q= uot;)
=C2=A0 =C2=A0 (synopsis "Python binding to the wlroots librar= y using cffi")
=C2=A0 =C2=A0 (description "Python binding to t= he wlroots library using cffi.")
=C2=A0 =C2=A0 (license ncsa)))
=
(define-public python-pywayland
=C2=A0 (package
=C2=A0 =C2=A0 (na= me "python-pywayland")
=C2=A0 =C2=A0 (version "0.4.18&quo= t;)
=C2=A0 =C2=A0 (source
=C2=A0 =C2=A0 =C2=A0(origin
=C2=A0 =C2= =A0 =C2=A0 =C2=A0(method url-fetch)
=C2=A0 =C2=A0 =C2=A0 =C2=A0(uri (pyp= i-uri "pywayland" version))
=C2=A0 =C2=A0 =C2=A0 =C2=A0(sha256=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 (base32 "0cv5aqn23id31mn95q6isn5vcnjcd= 4dvaqzn52ihbb9sg01dx2jr"))))
=C2=A0 =C2=A0 (build-system pyproject-= build-system)
=C2=A0 =C2=A0 (arguments (list #:tests? #f))
=C2=A0 =C2= =A0 (propagated-inputs (list python-cffi))
=C2=A0 =C2=A0 (native-inputs = (list python-cffi python-pytest python-setuptools
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0python= -wheel wayland wayland-protocols pkg-config))
=C2=A0 =C2=A0 (home-page &= quot;https://github.com= /flacjacket/pywayland")
=C2=A0 =C2=A0 (synopsis
=C2=A0 =C2= =A0 =C2=A0"Python bindings for the libwayland library written in pure = Python")
=C2=A0 =C2=A0 (description
=C2=A0 =C2=A0 =C2=A0"Py= thon bindings for the libwayland library written in pure Python.")
= =C2=A0 =C2=A0 (license asl2.0)))

(define-public python-xkbcommon
= =C2=A0 (package
=C2=A0 =C2=A0 (name "python-xkbcommon")
=C2= =A0 =C2=A0 (version "1.5.1")
=C2=A0 =C2=A0 (source
=C2=A0 = =C2=A0 =C2=A0(origin
=C2=A0 =C2=A0 =C2=A0 =C2=A0(method url-fetch)
= =C2=A0 =C2=A0 =C2=A0 =C2=A0(uri (pypi-uri "xkbcommon" version))=C2=A0 =C2=A0 =C2=A0 =C2=A0(sha256
=C2=A0 =C2=A0 =C2=A0 =C2=A0 (base32= "0dnwbp8rriwkmsa8a40cpvrccjy7m8xz6jw0vbcka7gnvc44h5xc"))))
= =C2=A0 =C2=A0 (build-system pyproject-build-system)
=C2=A0 =C2=A0 (propa= gated-inputs (list python-cffi))
=C2=A0 =C2=A0 (native-inputs (list pyth= on-setuptools python-wheel libxkbcommon))
=C2=A0 =C2=A0 (home-page "= ;https://github.com= /sde1000/python-xkbcommon")
=C2=A0 =C2=A0 (synopsis "Bindi= ngs for libxkbcommon using cffi")
=C2=A0 =C2=A0 (description "= Bindings for libxkbcommon using cffi.")
=C2=A0 =C2=A0 (license expa= t)))
--000000000000632bc2062d479bd7--