[PATCH 0/2] WIP: Add phosh.

OpenSubmitted by Jonathan Brielmaier.
Details
2 participants
  • Jonathan Brielmaier
  • phodina
Owner
unassigned
Severity
normal
J
J
Jonathan Brielmaier wrote on 2 Nov 2020 23:13
(address . guix-patches@gnu.org)(name . Jonathan Brielmaier)(address . jonathan.brielmaier@web.de)
20201102221301.23038-1-jonathan.brielmaier@web.de
Hi folks,

I finally send in patches for phosh, a wayland shell intended for mobile phones (Librem 5, PinePhone).
As the subject states they are still WIP, but I invested quite a lot and I'm now stuck.

phoc:
- kind of works (e.g. `phoc -E chatty`)
- the package it self is still a little ugly. I'll make it nicer when phosh works...

phosh:
ATTENTION: Testing phosh in it's current state can freeze your system.
You may need `SysRq+Alt+f` to unfreeze.

running phosh as user:
$ phosh
/gnu/store/gsj43q0svqskfw5w1q7dyngdn8g6ypqb-gnome-session-3.34.2/bin/..gnome-session-real-real: line 16: gsettings: command not found
(phoc:22717): phoc-wlroots-CRITICAL **: 23:00:15.854: [backend/session/direct-ipc.c:47] Do not have root privileges; cannot become DRM master
(phoc:22717): phoc-wlroots-CRITICAL **: 23:00:15.855: [backend/session/session.c:96] Failed to load session backend
(phoc:22717): phoc-wlroots-CRITICAL **: 23:00:15.855: [backend/backend.c:195] failed to start a session
(phoc:22717): phoc-wlroots-CRITICAL **: 23:00:15.855: [backend/backend.c:235] failed to start backend 'drm'
(phoc:22717): phoc-server-ERROR **: 23:00:15.855: Could not create backend
Trace/Breakpoint ausgelöst

I'm not sure if that is just an issue of elogind/systemd:

running phosh as root:
# phosh
directly freezes your system, nothing happens. It's not really verbose.

traps: phoc[14788] trap int3 ip:7fe22feeeaa1 sp:7ffdb281e3c0 error:0 in libglib-2.0.so.0.6200.6[7fe22feb6000+7d000]
is in the logs just before the OOM execution logging.

Any ideas how I can get phosh working?

Kind regards
Jonathan Brielmaier (2):
WIP: gnu: Add phoc.
WIP: gnu: Add phosh.

gnu/packages/gnome.scm | 139 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 139 insertions(+)

--
2.29.2
J
J
Jonathan Brielmaier wrote on 2 Nov 2020 23:28
[PATCH 1/2] WIP: gnu: Add phoc.
(address . 44400@debbugs.gnu.org)(name . Jonathan Brielmaier)(address . jonathan.brielmaier@web.de)
20201102222827.23533-1-jonathan.brielmaier@web.de
* gnu/packages/gnome.scm (phoc): New variable.
---
gnu/packages/gnome.scm | 73 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 73 insertions(+)

Toggle diff (81 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index cd7bc0ceba..af5ea09e55 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -12034,3 +12034,76 @@ for the GNOME 3.x platform with many features.  It aims to be a very complete
 editing environment for translation issues within the GNU gettext/GNOME desktop
 world.")
     (license license:gpl3+)))
+
+(define-public phoc
+  (package
+    (name "phoc")
+    (version "0.4.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://source.puri.sm/Librem5/phoc.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "08nqlmbklyjiirqdv56cs94rjs0bjwzjcccmbgzmjdbxxpklqy9k"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ; source of wlroots required in subprojects/wlroots folder
+         (add-after 'unpack 'get-wlroots
+           (lambda* (#:key inputs #:allow-other-keys)
+             (copy-recursively (assoc-ref inputs "wlroots-librem5-source")
+                               "subprojects/wlroots")
+             #t))
+        (add-after 'get-wlroots 'patch-paths
+           (lambda _
+             (substitute* "src/server.c"
+               (("/bin/sh") (which "sh")))
+             (substitute* "tests/test-run.c"
+               (("/bin/true") (which "true"))
+               (("/bin/false") (which "false")))
+             #t))
+         ;; Those check a running phoc server against some screenshots in the repo.
+         ;; They differ only by the mouse cursor (shadow vs. no shadow).
+         (add-before 'patch-paths 'disable-failing-tests
+           (lambda _
+             (substitute* "tests/meson.build"
+               (("'layer-shell',") "")
+               (("'xdg-shell',") "")
+               (("'phosh'") ""))
+             #t))
+         (add-before 'check 'pre-check
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Tests require a running X server.
+             (system "Xvfb :1 &")
+             (setenv "DISPLAY" ":1")
+             #t)))))
+    (native-inputs
+     `(("gobject-introspection" ,gobject-introspection)
+       ("glib:bin" ,glib "bin")
+       ("gnome-desktop" ,gnome-desktop)
+       ("libinput" ,libinput)
+       ("libxkbcommon" ,libxkbcommon)
+       ("pkg-config" ,pkg-config)
+       ("wayland" ,wayland)
+       ("wayland-protocols" ,wayland-protocols)
+       ("wlroots-librem5-source" ; patched version for Librem 5
+        ,(origin
+	         (method git-fetch)
+           (uri (git-reference
+                 (url "https://source.puri.sm/Librem5/wlroots.git")
+                 (commit "7723a09a226d812aa51d1439c2b5e8e21238d45c")))
+           (file-name (string-append name "-" version "-checkout"))
+           (sha256
+            (base32
+             "0k7662x40ssc0zvvz1qpwcwl98ndfpv2363hg9lsff5y0p4gk653"))))
+       ("xorg-server" ,xorg-server-for-tests)))
+    (propagated-inputs
+     `(("mutter" ,mutter)))
+    (synopsis "wlroots based phone compositor")
+    (description "Phoc is a...")
+    (home-page "https://source.puri.sm/Librem5/phoc")
+    (license license:gpl3))) ; TODO or gpl3+?
--
2.29.2
J
J
Jonathan Brielmaier wrote on 2 Nov 2020 23:28
[PATCH 2/2] WIP: gnu: Add phosh.
(address . 44400@debbugs.gnu.org)(name . Jonathan Brielmaier)(address . jonathan.brielmaier@web.de)
20201102222827.23533-2-jonathan.brielmaier@web.de
* gnu/packages/gnome.scm (phosh): New variable.
---
gnu/packages/gnome.scm | 66 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 66 insertions(+)

Toggle diff (74 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index af5ea09e55..df70d07be7 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -12107,3 +12107,69 @@ world.")
     (description "Phoc is a...")
     (home-page "https://source.puri.sm/Librem5/phoc")
     (license license:gpl3))) ; TODO or gpl3+?
+
+(define-public phosh
+  (package
+    (name "phosh")
+    (version "0.5.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://source.puri.sm/Librem5/phosh.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0vcgkkim6mwsdffyz37pnp7ax2f4z7272ikdkv03vg3j3h3ypnch"))))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'get-libgnome-volume-control
+           (lambda* (#:key inputs #:allow-other-keys)
+             (copy-recursively (assoc-ref inputs "libgnome-volume-control-source")
+                               "subprojects/gvc")))
+         (add-before 'configure 'fix-phoc-path
+           (lambda* (#:key inputs #:allow-other-keys)
+                (substitute* "data/phosh.in"
+                  (("@bindir@") (string-append (assoc-ref inputs "phoc") "/bin")))))
+         (delete 'check) ; TODO: needs a running wayland compositor
+                     )))
+    (build-system meson-build-system)
+    (native-inputs
+     `(("gcr" ,gcr)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gnome-desktop" ,gnome-desktop)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("libgnome-volume-control-source" ; needs to be present in subprojects/gvc folder
+        ,(origin
+	         (method git-fetch)
+           (uri (git-reference
+                 (url "https://gitlab.gnome.org/GNOME/libgnome-volume-control.git")
+                 (commit "ec5cf3e0de6715803e64b65abb059e2155b3d6de")))
+           (file-name (string-append name "-" version "-checkout"))
+           (sha256
+            (base32
+             "0azq1xy50s1bg28xf97g16657490ng00amc4cw7vvdgminq82rq5"))))
+       ("libsecret" ,libsecret)
+       ("linux-pam" ,linux-pam)
+       ("network-manager" ,network-manager)
+       ("pkg-config" ,pkg-config)
+       ("polkit" ,polkit)
+       ("upower" ,upower)))
+    (inputs
+     `(("feedbackd" ,feedbackd)
+       ("libhandy" ,libhandy)
+       ("pulseaudio" ,pulseaudio)))
+    (propagated-inputs
+      ;; "missing" schema files
+      ;; org.gnome.DejaDup.File org.guido-berhoerster.code.package-update-indicator org.blueberry
+     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ;org.gnome.desktop.wm.keybindings
+       ("gnome-session" ,gnome-session)
+       ("mutter" ,mutter) ;org.gnome.mutter.keybindings
+       ("network-manager-applet" ,network-manager-applet) ;org.gnome.nm-applet
+       ("phoc" ,phoc))) ;sm.puri.phoc
+    (synopsis "Wayland shell for GNOME on mobile devices")
+    (description "Phosh is a pure Wayland prototype intended for mobile devices.")
+    (home-page "https://source.puri.sm/Librem5/phosh")
+    (license license:gpl3+)))
--
2.29.2
J
J
Jonathan Brielmaier wrote on 8 Feb 2021 12:02
d71aad17-b205-3f37-0c3b-feae8031287e@web.de
I'm trying to lift those patches to phosh 0.8.0 but upstream requires
now libsystemd.

The easiest way on our side would be to let announce elogind systemd
support like Alpine is doing it:

The other one would be adding elogind support to upstream phosh. I'll
try for that and keep you updated...
P
P
phodina wrote on 17 Nov 2021 11:16
[PATCH v2 1/4] gnu: Add phoc.
(name . 44400@debbugs.gnu.org)(address . 44400@debbugs.gnu.org)
m6k0MWPMK9pPqT0uXfcxERdYHouyaARH_hPc7RUF3olqaNNzMvWErxLWsm3WiIqhdGAs44bmggb2GJEMdqSZqjbD4QG3iA82e4uyuc5yCZ4=@protonmail.com
* gnu/packages/gnome.scm (phoc): New variable.

Toggle diff (95 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 28d4432334..185931d244 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -61,6 +61,7 @@
 ;;; Copyright © 2021 Trevor Hass <thass@okstate.edu>
 ;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
 ;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
+;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1154,6 +1155,82 @@ (define-public mm-common
     (home-page "https://gitlab.gnome.org/GNOME/mm-common")
     (license license:gpl2+)))

+(define-public phoc
+  (package
+    (name "phoc")
+    (version "0.9.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.gnome.org/World/Phosh/phoc")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "18nwjbyjxq11ppfdky3bnfh9pr23fjl2543jwva0iz1n6c8mkpd9"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:tests? #f                      ; requires server connection
+       #:meson ,meson-next
+       #:phases
+       (modify-phases %standard-phases
+        ; source of wlroots required in subprojects/wlroots folder
+         (add-after 'unpack 'get-wlroots
+           (lambda* (#:key inputs #:allow-other-keys)
+             (copy-recursively (assoc-ref inputs "wlroots-librem5-source")
+                               "subprojects/wlroots")
+             #t))
+         (add-after 'get-wlroots 'patch-paths
+           (lambda _
+             (substitute* "src/server.c"
+               (("/bin/sh") (which "sh")))
+             (substitute* "tests/test-run.c"
+               (("/bin/true") (which "true"))
+               (("/bin/false") (which "false")))
+             #t))
+         ;; Those check a running phoc server against some screenshots in the repo.
+         ;; They differ only by the mouse cursor (shadow vs. no shadow).
+         (add-before 'patch-paths 'disable-failing-tests
+           (lambda _
+             (substitute* "tests/meson.build"
+               (("'layer-shell',") "")
+               (("'xdg-shell',") "")
+               (("'phosh'") ""))
+             #t))
+         (add-before 'check 'pre-check
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Tests require a running X server.
+             (system "Xvfb :1 &")
+             (setenv "DISPLAY" ":1")
+             #t)))))
+    (native-inputs
+     `(("gobject-introspection" ,gobject-introspection)
+       ("glib:bin" ,glib "bin")
+       ("gnome-desktop" ,gnome-desktop)
+       ("libinput" ,libinput)
+       ("libxkbcommon" ,libxkbcommon)
+       ("pkg-config" ,pkg-config)
+       ("wayland" ,wayland)
+       ("wayland-protocols" ,wayland-protocols)
+       ("wlroots-librem5-source"        ; patched version for Librem 5
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://source.puri.sm/Librem5/wlroots.git")
+                 (commit "5413b1ec61c6e3390929db595c0ec92f92ea2594")))
+           (file-name (string-append name "-" version "-checkout"))
+           (sha256
+            (base32
+             "02q70244sfs2jzl8mxsvd51rrv59jxllyss821xgg0cmq49rgq5w"))))
+       ("xorg-server" ,xorg-server-for-tests)))
+    (propagated-inputs
+     `(("mutter" ,mutter)))
+    (synopsis "Wayland compositor for mobile phones")
+    (description "Phoc is a wayland compositor for mobile phones based on
+        wlroots.")
+    (home-page "https://gitlab.gnome.org/World/Phosh/phoc")
+    (license license:gpl3+)))
+
 (define-public phodav
   (package
    (name "phodav")
--
2.33.0
P
P
phodina wrote on 17 Nov 2021 11:17
[PATCH v2 2/4] gnu: libhandy: Update to 1.5.0.
(name . 44400@debbugs.gnu.org)(address . 44400@debbugs.gnu.org)
ZtuUQt1rnmH9ttbNtMAbrXrRmBr6pW8dsRqo_7y4nQF0l_qdQKeP-qUhWoulCljNId1FKPE_Q70IIkoLZjjvAdPq_s8p1ZzBY9c1--KNmI0=@protonmail.com
* gnu/packages/gnome.scm (libhandy): Update to 1.5.0.

Toggle diff (22 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 185931d244..9348cf356e 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -11067,7 +11067,7 @@ (define-public terminator
 (define-public libhandy
   (package
     (name "libhandy")
-    (version "1.2.2")
+    (version "1.5.0")
     (source
      (origin
        (method git-fetch)
@@ -11076,7 +11076,7 @@ (define-public libhandy
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0345x7gif6yjm95y62lww71lj84wfwsr2p32r3iww8shavb8scyk"))))
+        (base32 "19gl0xxybraw2iyn6cdi9w7nps825lb2bhav7d2x51wla0lq3kdc"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
--
2.33.0
P
P
phodina wrote on 17 Nov 2021 11:18
[PATCH v2 3/4] gnu: Add callaudiod.
(name . 44400@debbugs.gnu.org)(address . 44400@debbugs.gnu.org)
TA_BNkv6jz5-WIZEXxE66HAxAnp8tYMOUbGX5FJvjf_t0X6SKr18UkLGWz72oG8lfEBhjay6vAgdn2mHvQ4hODnswwWluFe9Ycmo8EKC_ww=@protonmail.com
* gnu/packages/audio.scm (callaudiod): New variable.

Toggle diff (46 lines)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 4b1a602804..1ec0854285 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -34,6 +34,7 @@
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1026,6 +1027,33 @@ (define-public calf
     ;; The plugins are released under LGPLv2.1+
     (license (list license:lgpl2.1+ license:gpl2+))))

+(define-public callaudiod
+  (package
+    (name "callaudiod")
+    (version "0.1.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/mobian1/callaudiod")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "04pn6f9p2n0qsy7cbchmnqlmjfvn908vdryc4y38srnj3xiq212l"))))
+    (build-system meson-build-system)
+    (native-inputs `(("alsa-lib" ,alsa-lib)
+                     ("glib" ,glib)
+                     ("glib" ,glib "bin")
+                     ("pkg-config" ,pkg-config)
+                     ("pulseaudio" ,pulseaudio)))
+    (inputs `(("alsa-utils" ,alsa-utils)
+              ("pulseaudio" ,pulseaudio)))
+    (synopsis "Call audio routing daemon")
+    (description "This package provides a daemon for dealing with audio routing
+during phone calls.  It provides a D-Bus interface.")
+    (home-page "https://gitlab.com/mobian1/callaudiod")
+    (license license:gpl3+)))
+
 (define-public caps-plugins-lv2
   (package
     (name "caps-plugins-lv2")
--
2.33.0
P
P
phodina wrote on 17 Nov 2021 11:19
[PATCH v2 4/4] WIP: gnu: Add phosh.
(name . 44400@debbugs.gnu.org)(address . 44400@debbugs.gnu.org)
rM5Gi-SukHuqhKGHQNNoM2f1zA7KZ7HBwGMoPWpG0ATsdgjCn0Q01iReHK0ABNjz24YMIUxE1Cm395TjzYie5GjpNbq8WT8D5fiuHPzH9Vc=@protonmail.com
* gnu/packages/gnome.scm (phosh): New variable.

Toggle diff (109 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 9348cf356e..7d9fcce229 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -83,6 +83,7 @@ (define-module (gnu packages gnome)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages aidc)
   #:use-module (gnu packages aspell)
+  #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages backup)
@@ -1278,6 +1279,96 @@ (define-public phodav
    (home-page "https://wiki.gnome.org/phodav")
    (license license:lgpl2.1+)))

+(define-public phosh
+  (package
+    (name "phosh")
+    (version "0.14.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.gnome.org/World/Phosh/phosh")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0fhp2jmwjzzxd66b4figc2wdpzdjycpq3cf4lx3z04dzl9vmw65a"))))
+    (build-system meson-build-system)
+    (arguments
+	 `(#:meson ,meson-next
+       #:phases
+       (modify-phases %standard-phases
+	   (add-after 'unpack 'get-libgnome-volume-control
+           (lambda* (#:key inputs #:allow-other-keys)
+             (copy-recursively (assoc-ref inputs "libgnome-volume-control-source")
+                               "subprojects/gvc")))
+	   (add-after 'unpack 'get-libcall-ui
+           (lambda* (#:key inputs #:allow-other-keys)
+             (copy-recursively (assoc-ref inputs "libcall-ui")
+                               "subprojects/libcall-ui")))
+	   (add-after 'unpack 'patch-systemd
+           (lambda* (#:key inputs #:allow-other-keys)
+		    (substitute* "meson.build"
+			(("libsystemd_dep") "#libsystemd_dep"))
+		    (substitute* "src/meson.build"
+			(("libsystemd_dep") "#libsystemd_dep"))))
+         (add-before 'configure 'fix-phoc-path
+           (lambda* (#:key inputs #:allow-other-keys)
+                (substitute* "data/phosh.in"
+                  (("@bindir@") (string-append (assoc-ref inputs "phoc") "/bin")))))
+         (delete 'check) ; TODO: needs a running wayland compositor
+                     )))
+    (native-inputs
+     `(("gcr" ,gcr)
+       ("gettext" ,gettext-minimal)
+	   ("git" ,git)
+       ("glib:bin" ,glib "bin")
+       ("gnome-desktop" ,gnome-desktop)
+       ("gtk+:bin" ,gtk+ "bin")
+	   ("libgnome-volume-control-source" ; needs to be present in subprojects/gvc folder
+        ,(origin
+	         (method git-fetch)
+           (uri (git-reference
+                 (url "https://gitlab.gnome.org/GNOME/libgnome-volume-control.git")
+                 (commit "ae1a34aafce7026b8c0f65a43c9192d756fe1057")))
+           (file-name (string-append name "-" version "-checkout"))
+           (sha256
+            (base32
+             "0a4qh5pgyjki904qf7qmvqz2ksxb0p8xhgl2aixfbhixn0pw6saw"))))
+	   ("libcall-ui" ; needs to be present in subprojects/libcall-ui folder
+        ,(origin
+	         (method git-fetch)
+           (uri (git-reference
+                 (url "https://gitlab.gnome.org/World/Phosh/libcall-ui")
+                 (commit "465f6add090b623fb80c6c5cbb9ab2880ff531a4")))
+           (file-name (string-append name "-" version "-checkout"))
+           (sha256
+            (base32
+             "1as857npl2yra4zh4bfph9wvhvjck53i2qp3zzbv3mbpi36nscfr"))))
+       ("callaudiod" ,callaudiod)
+       ("libsecret" ,libsecret)
+       ("linux-pam" ,linux-pam)
+       ("network-manager" ,network-manager)
+       ("pkg-config" ,pkg-config)
+       ("polkit" ,polkit)
+       ("upower" ,upower)))
+    (inputs
+     `(("feedbackd" ,feedbackd)
+       ("libhandy" ,libhandy)
+	   ("libgudev" ,libgudev)
+       ("pulseaudio" ,pulseaudio)))
+    (propagated-inputs
+      ;; "missing" schema files
+      ;; org.gnome.DejaDup.File org.guido-berhoerster.code.package-update-indicator org.blueberry
+     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ;org.gnome.desktop.wm.keybindings
+       ("gnome-session" ,gnome-session)
+       ("mutter" ,mutter) ;org.gnome.mutter.keybindings
+       ("network-manager-applet" ,network-manager-applet) ;org.gnome.nm-applet
+       ("phoc" ,phoc))) ;sm.puri.phoc
+    (synopsis "Wayland shell for GNOME on mobile devices")
+    (description "Phosh is a pure Wayland prototype intended for mobile devices.")
+    (home-page "https://gitlab.gnome.org/World/Phosh/phosh")
+    (license license:gpl3+)))
+
 (define-public gnome-color-manager
   (package
    (name "gnome-color-manager")
--
2.33.0
J
J
Jonathan Brielmaier wrote on 17 Nov 2021 11:26
ed0f57d0-64a2-43b5-8e79-76162d0657b1@web.de
On 17.11.21 11:19, phodina via Guix-patches via wrote:
Toggle quote (2 lines)
> * gnu/packages/gnome.scm (phosh): New variable.

Does phosh work for you? I only got phoc running, phosh "refused" to
start...
P
P
phodina wrote on 17 Nov 2021 11:26
Phosh v2 patches comments
(name . 44400@debbugs.gnu.org)(address . 44400@debbugs.gnu.org)
WEbcizzNpRlcI7NRS2IbI4e_u--zrlXxlHm2__pIPrmQvC8mShDbfeFQd2qLbL-S3Aq3odYV1m3-rVYjrCfgmaQC_lFpi5s9hyQ1vVBzXWY=@protonmail.com
Hi Jonathan,

I've updated your patches to newer releases.

Phoc and Phosh are now officially hosted on https://gitlab.gnome.org.

The recent version of phosh depends also on newer version of libhandy which triggers a massive rebuild.

Building the following 9012 packages would ensure 20391 dependent packages are rebuilt

So it will be necessary to rebase on core-updates branch.

However, the greatest headache is still the dependency on systemd.

The phosh package is updated but due to systemd dependency fails:

...
../source/src/util.c:12:10: fatal error: systemd/sd-login.h: No such file or directory
#include <systemd/sd-login.h>

I like the approach made by Postmarket or in genral by Alpine as you already suggested.

Though it would be great to get more opinions on this matter!

---
Cheers
Petr
P
P
phodina wrote on 17 Nov 2021 11:32
Re: [bug#44400] [PATCH v2 4/4] WIP: gnu: Add phosh.
(name . Jonathan Brielmaier)(address . jonathan.brielmaier@web.de)(name . 44400@debbugs.gnu.org)(address . 44400@debbugs.gnu.org)
CFkPBY2_sKm8SqUG_ZJedbsz4hjRZkMJ-iJaSkoDajbYgqLH4ic8rGkBG3jXXjfJzqKe6rNfLwOYo9KVVML2oDnaqulswd2y2tSfRYeCnJI=@protonmail.com
On Wednesday, November 17th, 2021 at 11:26 AM, Jonathan Brielmaier <jonathan.brielmaier@web.de> wrote:

Toggle quote (8 lines)
> On 17.11.21 11:19, phodina via Guix-patches via wrote:
>
> > - gnu/packages/gnome.scm (phosh): New variable.
>
> Does phosh work for you? I only got phoc running, phosh "refused" to
>
> start...

Unfortunately not, though I'm expecting finally after almost 3 years of waiting Librem 5 and I'd like to see there Guix running.

So I've looked into Phosh and saw your patches.

Unfortunately, there's still the elogind/systemd question which I have to open.

I've got Phosh running on Pinephone where there's no systemd as Alpine uses OpenRC.
P
P
phodina wrote on 28 Nov 2021 11:46
(name . Jonathan Brielmaier)(address . jonathan.brielmaier@web.de)(name . 44400@debbugs.gnu.org)(address . 44400@debbugs.gnu.org)
UeImvP386mYI5dyf9mo9umdeMc-C1-5_slwK1jGuLSg2fIK-JXQx_OohAv8_UIBtpCjXFFcwYvnGW3ezS3TfKFQs-yPze8fWUP-v5eQdp80=@protonmail.com
Hi Johnatan,

I've managed to substitute the systemd dependency for elogind. So the phosh package now builds.

However, there is some error regarding the glib schema. I haven't worked that much with glib so that's the next thing on my list.

I'm posting the error in case you know how to fix that and you'll find the patch attached as well.

$ /gnu/store/z5dfz6hf9wb5jbndrkzhlc1yzgdqjjak-phosh-0.14.0/libexec/phosh

(phosh:8740): phosh-keyboard-events-WARNING **: 13:40:53.719: Skipping grab manager due to missing phosh_private protocol extension

(phosh:8740): GLib-GIO-ERROR **: 13:40:53.722: Settings schema 'sm.puri.phosh' is not installed
Trace/breakpoint trap
cylon2p0@rocinante ~/guix/gnu/packages$ /gnu/store/z5dfz6hf9wb5jbndrkzhlc1yzgdqjjak-phosh-0.14.0/libexec/phosh

(phosh:10766): phosh-keyboard-events-WARNING **: 15:23:33.151: Skipping grab manager due to missing phosh_private protocol extension

(phosh:10766): GLib-GIO-ERROR **: 15:23:33.154: Settings schema 'sm.puri.phosh' is not installed


----
Petr
From 9aefa3e4a808d0e49040ea16ebd3660e75133121 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 17 Nov 2021 11:14:15 +0100
Subject: [PATCH v3] WIP: gnu: Add phosh.

* gnu/packages/gnome.scm (phosh): New variable.

Toggle diff (117 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 9348cf356e..a0d4e90927 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -83,6 +83,7 @@ (define-module (gnu packages gnome)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages aidc)
   #:use-module (gnu packages aspell)
+  #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages backup)
@@ -1278,6 +1279,102 @@ (define-public phodav
    (home-page "https://wiki.gnome.org/phodav")
    (license license:lgpl2.1+)))
 
+(define-public phosh
+  (package
+    (name "phosh")
+    (version "0.14.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.gnome.org/World/Phosh/phosh")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0fhp2jmwjzzxd66b4figc2wdpzdjycpq3cf4lx3z04dzl9vmw65a"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:meson ,meson-next
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'get-libgnome-volume-control
+           (lambda* (#:key inputs #:allow-other-keys)
+             (copy-recursively (assoc-ref inputs "libgnome-volume-control-source")
+                               "subprojects/gvc")))
+         (add-after 'unpack 'get-libcall-ui
+           (lambda* (#:key inputs #:allow-other-keys)
+             (copy-recursively (assoc-ref inputs "libcall-ui")
+                               "subprojects/libcall-ui")))
+         ;; we use elogind instead of systemd
+         (add-after 'unpack 'patch-systemd
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "meson.build"
+               (("libsystemd") "libelogind"))
+             (substitute* "src/meson.build"
+               (("libsystemd_dep") "libelogind_dep"))
+             (substitute* "src/util.c"
+               (("systemd/sd-login.h") "elogind/sd-login.h"))
+             (substitute* "src/main.c"
+               (("systemd/sd-daemon.h") "elogind/sd-daemon.h"))))
+         (add-before 'configure 'fix-phoc-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "data/phosh.in"
+               (("@bindir@") (string-append (assoc-ref inputs "phoc") "/bin")))))
+         (delete 'check)    ; TODO: needs a running wayland compositor
+         )))
+    (native-inputs
+     `(("elogind" ,elogind)
+       ("gcr" ,gcr)
+       ("gettext" ,gettext-minimal)
+       ("git" ,git)
+       ("glib:bin" ,glib "bin")
+       ("gnome-desktop" ,gnome-desktop)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("libgnome-volume-control-source" ; needs to be present in subprojects/gvc folder
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://gitlab.gnome.org/GNOME/libgnome-volume-control.git")
+                 (commit "ae1a34aafce7026b8c0f65a43c9192d756fe1057")))
+           (file-name (string-append name "-" version "-checkout"))
+           (sha256
+            (base32
+             "0a4qh5pgyjki904qf7qmvqz2ksxb0p8xhgl2aixfbhixn0pw6saw"))))
+       ("libcall-ui" ; needs to be present in subprojects/libcall-ui folder
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://gitlab.gnome.org/World/Phosh/libcall-ui")
+                 (commit "465f6add090b623fb80c6c5cbb9ab2880ff531a4")))
+           (file-name (string-append name "-" version "-checkout"))
+           (sha256
+            (base32
+             "1as857npl2yra4zh4bfph9wvhvjck53i2qp3zzbv3mbpi36nscfr"))))
+       ("callaudiod" ,callaudiod)
+       ("libsecret" ,libsecret)
+       ("linux-pam" ,linux-pam)
+       ("network-manager" ,network-manager)
+       ("pkg-config" ,pkg-config)
+       ("polkit" ,polkit)
+       ("upower" ,upower)))
+    (inputs
+     `(("feedbackd" ,feedbackd)
+       ("libhandy" ,libhandy)
+       ("libgudev" ,libgudev)
+       ("pulseaudio" ,pulseaudio)))
+    (propagated-inputs
+     ;; "missing" schema files
+     ;; org.gnome.DejaDup.File org.guido-berhoerster.code.package-update-indicator org.blueberry
+     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ;org.gnome.desktop.wm.keybindings
+       ("gnome-session" ,gnome-session)
+       ("mutter" ,mutter)               ;org.gnome.mutter.keybindings
+       ("network-manager-applet" ,network-manager-applet) ;org.gnome.nm-applet
+       ("phoc" ,phoc)))                 ;sm.puri.phoc
+    (synopsis "Wayland shell for GNOME on mobile devices")
+    (description "Phosh is a pure Wayland prototype intended for mobile devices.")
+    (home-page "https://gitlab.gnome.org/World/Phosh/phosh")
+    (license license:gpl3+)))
+
 (define-public gnome-color-manager
   (package
    (name "gnome-color-manager")
-- 
2.33.0
J
J
Jonathan Brielmaier wrote on 4 Mar 18:40 +0100
[PATCH 0/2] WIP: Add phosh.
(address . 44400@debbugs.gnu.org)
f8443895-2326-dac0-2950-f2b27da2077a@web.de
Hi Petr,

"The recent version of phosh depends also on newer version of libhandy
which triggers a massive rebuild.
Building the following 9012 packages would ensure 20391 dependent
packages are rebuilt
So it will be necessary to rebase on core-updates branch."

-> I think in that case we could add a libhandy-x.y package which
inherits libhandy. So we would avoid that world rebuilding for now.

Although
```
$ guix refresh --list-dependent libhandy

Die folgenden 25 Pakete zu erstellen, würde zur Folge haben, dass 52
abhängige Pakete neu erstellt werden:
```
sounds a bit smaller. Did you mean elogind which has 1k/2k dependant
packages?

Regarding that schema issue: does it occur as well when you install the
phosh package?

~Jonathan
P
P
phodina wrote on 24 Mar 14:32 +0100
[PATCH v3 1/5] WIP: gnu: Add phosh.
(name . 44400@debbugs.gnu.org)(address . 44400@debbugs.gnu.org)
IruD3EyXSCGFp-IpoM65x9I9b7XTOyHF8H2-5fqOZgvewo6XjaZ6ezFtZdTjoB3Kcx5BaIn_OltI59Qp8YIm5KQ6csweyRVIfqcLrbibMQY=@protonmail.com
Hi Jonathan,

the current patch set is based on the master branch. Running the Guix command
gives me 26 dependent packages - not a massive number.
```
./pre-inst-env guix refresh --list-dependent libhandy
Building the following 26 packages would ensure 54 dependent packages are rebuilt:
cozy@1.2.0 markets@0.5.3 gtranslator@40.0 apostrophe@2.5 eiciel@0.9.13.1 denemo@2.6.0
gpaste@3.42.2 arc-theme@20210412 gnome-shell-extension-gsconnect@48
numix-gtk-theme@2.6.7 eolie@0.9.101 deja-dup@42.8 lollypop@1.4.24 gnome-tweaks@40.0
passwordsafe@5.1 geary@40.0 komikku@0.37.0 phosh@0.14.0 seahorse@41.0 gnome@41.0
tootle@1.0 chatty@0.4.0 sideload@6.0.2 giara@0.3 gfeeds@0.16.2 blanket@0.5.0
```

I've given up on meson build system and just build it as a regular Rust package
with cargo build system.

Btw squeekboard is a requirement for Phosh to work as stated by Guido [1].

See the patches attached.

The current issue I face is probably due to the fact I fix the requirements
as squeekboard depends on older versions of packages that are no longer in Guix.

Should I bring the packages back or attempt to patch the Phosh upstream to use
newer versions of Rust crates?

Toggle quote (3 lines)
> Regarding that schema issue: does it occur as well when you install the
> phosh package?

I'm stuck with squeekboard with these errors:

```
Compiling rs v0.1.0 (/tmp/guix-build-squeekboard-1.17.0.drv-0/source)
error[E0599]: no function or associated item named `from_glib_none` found for struct `gtk::Widget` in the current scope
--> src/drawing.rs:262:40
|
262 | let widget = unsafe { gtk::Widget::from_glib_none(keyboard.0) };
| ^^^^^^^^^^^^^^ function or associated item not found in `gtk::Widget`
|
= help: items from traits can only be used if the trait is in scope
help: the following trait is implemented but not in scope; perhaps add a `use` for it:
|
3 | use glib::translate::FromGlibPtrNone;
|

error[E0599]: no method named `unwrap` found for struct `glib::variant::Variant` in the current scope
--> src/popover.rs:136:52
|
136 | let inputs = settings.get_value("sources").unwrap();
| ^^^^^^ method not found in `glib::variant::Variant`

error[E0308]: mismatched types
--> src/popover.rs:145:13
|
145 | &variants::ArrayPairString(inputs).to_variant(),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `glib::variant::Variant`, found struct `glib::Variant`
|
= note: expected reference `&glib::variant::Variant`
found reference `&glib::Variant`
= note: perhaps two different versions of crate `glib` are being used?

error[E0599]: no function or associated item named `from_glib_none` found for struct `gtk::Widget` in the current scope
--> src/popover.rs:253:40
|
253 | let window = unsafe { gtk::Widget::from_glib_none(window.0) };
| ^^^^^^^^^^^^^^ function or associated item not found in `gtk::Widget`
|
= help: items from traits can only be used if the trait is in scope
help: the following trait is implemented but not in scope; perhaps add a `use` for it:
|
3 | use glib::translate::FromGlibPtrNone;
|

error[E0599]: no method named `unwrap` found for struct `glib::variant::Variant` in the current scope
--> src/popover.rs:264:56
|
264 | let inputs = settings.get_value("sources").unwrap();
| ^^^^^^ method not found in `glib::variant::Variant`

error[E0308]: mismatched types
--> src/popover.rs:340:18
|
340 | Some(current_layout_name.to_variant().type_()),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `glib::variant_type::VariantTy`, found struct `VariantTy`
|
= note: expected reference `&glib::variant_type::VariantTy`
found reference `&VariantTy`
= note: perhaps two different versions of crate `glib` are being used?

error[E0308]: mismatched types
--> src/popover.rs:341:13
|
341 | &current_layout_name.to_variant()
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `glib::variant::Variant`, found struct `glib::Variant`
|
= note: expected reference `&glib::variant::Variant`
found reference `&glib::Variant`
= note: perhaps two different versions of crate `glib` are being used?

error[E0308]: mismatched types
--> src/popover.rs:387:9
|
387 | Continue(false)
| ^^^^^^^^^^^^^^^ expected struct `glib::Continue`, found struct `gdk::prelude::Continue`
|
= note: perhaps two different versions of crate `glib` are being used?

error[E0599]: no method named `to_glib_full` found for struct `CssProvider` in the current scope
--> src/style.rs:64:18
|
64 | provider.to_glib_full()
| ^^^^^^^^^^^^ method not found in `CssProvider`
|
::: /tmp/guix-build-squeekboard-1.17.0.drv-0/source/guix-vendor/rust-glib-0.9.3.tar.gz/src/translate.rs:279:8
|
279 | fn to_glib_full(&self) -> P {
| ------------ the method is available for `CssProvider` here
|
= help: items from traits can only be used if the trait is in scope
help: the following trait is implemented but not in scope; perhaps add a `use` for it:
|
29 | use glib::translate::ToGlibPtr;
|

error[E0599]: the method `get_property` exists for reference `&gtk::Settings`, but its trait bounds were not satisfied
--> src/style.rs:104:44
|
104 | let prop = |s: &gtk::Settings, name| s.get_property(name);
| ^^^^^^^^^^^^ method cannot be called on `&gtk::Settings` due to unsatisfied trait bounds
|
::: /tmp/guix-build-squeekboard-1.17.0.drv-0/source/guix-vendor/rust-gtk-0.8.1.tar.gz/src/auto/settings.rs:23:1
|
23 | / glib_wrapper! {
24 | | pub struct Settings(Object<gtk_sys::GtkSettings, gtk_sys::GtkSettingsClass, SettingsClass>) @implements StyleProvider;
25 | |
26 | | match fn {
27 | | get_type => || gtk_sys::gtk_settings_get_type(),
28 | | }
29 | | }
| | -
| | |
| |_doesn't satisfy `gtk::Settings: glib::ObjectExt`
| doesn't satisfy `gtk::Settings: glib::ObjectType`
|
= note: the following trait bounds were not satisfied:
`gtk::Settings: glib::ObjectType`
which is required by `gtk::Settings: glib::ObjectExt`
`&gtk::Settings: glib::ObjectType`
which is required by `&gtk::Settings: glib::ObjectExt`
= help: items from traits can only be used if the trait is in scope
help: the following trait is implemented but not in scope; perhaps add a `use` for it:
|
21 | use gdk::prelude::ObjectExt;
|

Some errors have detailed explanations: E0308, E0599.
For more information about an error, try `rustc --explain E0308`.
error: could not compile `rs` due to 10 previous errors
error: in phase 'build': uncaught exception:
%exception #<&invoke-error program: "cargo" arguments: ("build" "--release") exit-status: 101 term-signal: #f stop-signal: #f>
```


----
Petr
From d226b385bda38b1df7d9a0394fae881841371bdd Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Mon, 10 Jan 2022 14:40:17 +0100
Subject: [PATCH v3 1/5] gnu: Add rust-xkbcommon-0.4.

* gnu/packages/crates-io.scm (rust-xkbcommon-0.4): New variable.

Toggle diff (51 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 90c95b6368..21d5eb868b 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -85,6 +85,7 @@ (define-module (gnu packages crates-io)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
+  #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages webkit)
@@ -71076,6 +71077,36 @@ (define-public rust-xml-rs-0.8
     (description "An XML library in pure Rust.")
     (license license:expat)))
 
+(define-public rust-xkbcommon-0.4
+  (package
+    (name "rust-xkbcommon")
+    (version "0.4.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "xkbcommon" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "1kig3drxm3jbjlyxv9vxawpi2x32w2z9jxysxvg53gfsgmgym87x"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:cargo-inputs
+        (("rust-libc" ,rust-libc-0.2)
+         ("rust-memmap" ,rust-memmap-0.7)
+         ("rust-xcb" ,rust-xcb-0.9))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-version-requirements
+           (lambda _
+             (substitute* "Cargo.toml"
+               (("0.8")
+                ,(package-version rust-xcb-0.9))))))))
+    (inputs (list libxkbcommon))
+    (home-page "https://github.com/rust-x-bindings/xkbcommon-rs")
+    (synopsis "Rust bindings and wrappers for libxkbcommon")
+    (description "Rust bindings and wrappers for libxkbcommon")
+    (license license:expat)))
+
 (define-public rust-xml-rs-0.7
   (package
     (name "rust-xml-rs")
-- 
2.34.0
From f03a75ceeda012d486a68b06fd70beab390f3dbc Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Mon, 27 Dec 2021 20:23:25 +0100
Subject: [PATCH v3 4/5] gnu: Add squeekboard.

* gnu/packages/gnome.scm (squeekboard): New variable.

Toggle diff (77 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 0bf5a8ed2f..a481b1db79 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -566,6 +566,70 @@ (define-public seed
     (home-page "https://wiki.gnome.org/Projects/Seed")
     (license license:lgpl2.0+)))
 
+(define-public squeekboard
+  (package
+    (name "squeekboard")
+    (version "1.17.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+	   (url "https://gitlab.gnome.org/World/Phosh/squeekboard")
+	   (commit (string-append "v" version))))
+       (sha256
+        (base32
+         "1612s6cim46a4rqzqpvz46m4l4kgdnf52bxgrpx7p4fp8r1qx3jk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:modules ((guix build cargo-build-system)
+                  (guix build utils)
+                  (ice-9 textual-ports))
+	  #:cargo-inputs
+       (("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
+        ("rust-cairo-rs" ,rust-cairo-rs-0.7)
+        ("rust-clap" ,rust-clap-2)
+        ("rust-gdk" ,rust-gdk-0.12)
+        ("rust-gio" ,rust-gio-0.7)
+        ("rust-glib-sys" ,rust-glib-sys-0.9)
+        ("rust-gtk" ,rust-gtk-0.8)
+	    ("rust-gtk-sys" ,rust-gtk-sys-0.9)
+	    ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-maplit" ,rust-maplit-1)
+		("rust-serde" ,rust-serde-1)
+		("rust-serde-yaml" ,rust-serde-yaml-0.8)
+		("rust-xkbcommon" ,rust-xkbcommon-0.4))
+		#:phases
+ 		(modify-phases %standard-phases
+		 (add-before 'patch-cargo-checksums 'fix-requirements
+		   (lambda* _
+				(substitute* "Cargo.toml.in"
+				(("@path@/") ""))
+				(substitute* "Cargo.deps"
+				(("1.2") ,(version-major+minor (package-version
+				rust-bitflags-1)))
+				(("0.7") ,(version-major+minor (package-version
+				rust-gtk-0.8)))
+				(("0.11") ,(version-major+minor (package-version
+				rust-gdk-0.12)))
+				(("2.33") ,(version-major+minor (package-version
+				rust-clap-2))))))
+         (add-after 'fix-requirements 'prepare-cargo-toml
+           (lambda* (#:key source #:allow-other-keys)
+		   (let* ((cargo-toml-in (call-with-input-file "Cargo.toml.in" get-string-all))
+		          (cargo-deps (call-with-input-file "Cargo.deps" get-string-all))
+		          (cargo-toml (open-file "Cargo.toml" "w")))
+                (display cargo-toml-in cargo-toml)
+                (display cargo-deps cargo-toml)
+                (close-output-port cargo-toml)))))))
+	(native-inputs (list wayland-protocols))
+    (inputs
+     (list gtk dbus))
+    (home-page "https://gitlab.gnome.org/World/Phosh/squeekboard")
+    (synopsis "On-screen-keyboard input method for Wayland")
+    (description "This package provides an on-screen-keyboard input
+	method for Wayland.")
+    (license license:gpl3+)))
+
 (define-public libdmapsharing
   (package
     (name "libdmapsharing")
-- 
2.34.0
From 228be2a154607fa97d561366bd6f7e99fbcf61ab Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 17 Nov 2021 10:58:55 +0100
Subject: [PATCH v3 2/5] gnu: Add phoc.

* gnu/packages/gnome.scm (phoc): New variable.

Toggle diff (96 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index bc99454b1b..0bf5a8ed2f 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -69,6 +69,7 @@
 ;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
 ;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+;;; Copyright © 2021, 2022 Petr Hodina <phodina@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1168,6 +1169,81 @@ (define-public mm-common
     (home-page "https://gitlab.gnome.org/GNOME/mm-common")
     (license license:gpl2+)))
 
+(define-public phoc
+  (package
+    (name "phoc")
+    (version "0.9.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.gnome.org/World/Phosh/phoc")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "18nwjbyjxq11ppfdky3bnfh9pr23fjl2543jwva0iz1n6c8mkpd9"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:tests? #f                      ; requires server connection
+       #:phases
+       (modify-phases %standard-phases
+        ; source of wlroots required in subprojects/wlroots folder
+         (add-after 'unpack 'get-wlroots
+           (lambda* (#:key inputs #:allow-other-keys)
+             (copy-recursively (assoc-ref inputs "wlroots-librem5-source")
+                               "subprojects/wlroots")
+             #t))
+         (add-after 'get-wlroots 'patch-paths
+           (lambda _
+             (substitute* "src/server.c"
+               (("/bin/sh") (which "sh")))
+             (substitute* "tests/test-run.c"
+               (("/bin/true") (which "true"))
+               (("/bin/false") (which "false")))
+             #t))
+         ;; Those check a running phoc server against some screenshots in the repo.
+         ;; They differ only by the mouse cursor (shadow vs. no shadow).
+         (add-before 'patch-paths 'disable-failing-tests
+           (lambda _
+             (substitute* "tests/meson.build"
+               (("'layer-shell',") "")
+               (("'xdg-shell',") "")
+               (("'phosh'") ""))
+             #t))
+         (add-before 'check 'pre-check
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Tests require a running X server.
+             (system "Xvfb :1 &")
+             (setenv "DISPLAY" ":1")
+             #t)))))
+    (native-inputs
+     `(("gobject-introspection" ,gobject-introspection)
+       ("glib:bin" ,glib "bin")
+       ("gnome-desktop" ,gnome-desktop)
+       ("libinput" ,libinput)
+       ("libxkbcommon" ,libxkbcommon)
+       ("pkg-config" ,pkg-config)
+       ("wayland" ,wayland)
+       ("wayland-protocols" ,wayland-protocols)
+       ("wlroots-librem5-source"        ; patched version for Librem 5
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://source.puri.sm/Librem5/wlroots.git")
+                 (commit "5413b1ec61c6e3390929db595c0ec92f92ea2594")))
+           (file-name (string-append name "-" version "-checkout"))
+           (sha256
+            (base32
+             "02q70244sfs2jzl8mxsvd51rrv59jxllyss821xgg0cmq49rgq5w"))))
+       ("xorg-server" ,xorg-server-for-tests)))
+    (propagated-inputs
+     `(("mutter" ,mutter)))
+    (synopsis "Wayland compositor for mobile phones")
+    (description "Phoc is a wayland compositor for mobile phones based on
+        wlroots.")
+    (home-page "https://gitlab.gnome.org/World/Phosh/phoc")
+    (license license:gpl3+)))
+
 (define-public phodav
   (package
    (name "phodav")
-- 
2.34.0
From b87ce61b64b067bf60341e476bae37db7880a35a Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 17 Nov 2021 11:10:16 +0100
Subject: [PATCH v3 3/5] gnu: Add callaudiod.

* gnu/packages/audio.scm (callaudiod): New variable.

Toggle diff (48 lines)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 13e0f02837..3b452954d7 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -36,6 +36,7 @@
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2021 jgart <jgart@dismail.de>
 ;;; Copyright © 2021 Aleksandr Vityazev <avityazev@posteo.org>
+;;; Copyright © 2021, 2022 Petr Hodina <phodina@protonmail.com>
 ;;; Copyright © 2022 Arjan Adriaanse <arjan@adriaan.se>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -1076,6 +1077,33 @@ (define-public calf
     ;; The plugins are released under LGPLv2.1+
     (license (list license:lgpl2.1+ license:gpl2+))))
 
+(define-public callaudiod
+  (package
+    (name "callaudiod")
+    (version "0.1.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/mobian1/callaudiod")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "04pn6f9p2n0qsy7cbchmnqlmjfvn908vdryc4y38srnj3xiq212l"))))
+    (build-system meson-build-system)
+    (native-inputs `(("alsa-lib" ,alsa-lib)
+                     ("glib" ,glib)
+                     ("glib" ,glib "bin")
+                     ("pkg-config" ,pkg-config)
+                     ("pulseaudio" ,pulseaudio)))
+    (inputs `(("alsa-utils" ,alsa-utils)
+              ("pulseaudio" ,pulseaudio)))
+    (synopsis "Call audio routing daemon")
+    (description "This package provides a daemon for dealing with audio routing
+during phone calls.  It provides a D-Bus interface.")
+    (home-page "https://gitlab.com/mobian1/callaudiod")
+    (license license:gpl3+)))
+
 (define-public caps-plugins-lv2
   (package
     (name "caps-plugins-lv2")
-- 
2.34.0
From 1fc1bca4767f9876dd6d6cb102e76ab8d8bca120 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 17 Nov 2021 11:14:15 +0100
Subject: [PATCH v3 5/5] gnu: Add phosh.

* gnu/packages/gnome.scm (phosh): New variable.

Toggle diff (127 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index a481b1db79..c2e1223725 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -91,6 +91,7 @@ (define-module (gnu packages gnome)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages aidc)
   #:use-module (gnu packages aspell)
+  #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages backup)
@@ -1353,6 +1354,112 @@ (define-public phodav
    (home-page "https://wiki.gnome.org/phodav")
    (license license:lgpl2.1+)))
 
+(define-public phosh
+  (package
+    (name "phosh")
+    (version "0.14.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.gnome.org/World/Phosh/phosh")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0fhp2jmwjzzxd66b4figc2wdpzdjycpq3cf4lx3z04dzl9vmw65a"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:modules ((guix build meson-build-system)
+	              ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
+				  (guix build utils)
+				  (ice-9 match))
+       #:imported-modules ((guix build glib-or-gtk-build-system)
+	                       ,@%meson-build-system-modules)
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'get-libgnome-volume-control
+           (lambda* (#:key inputs #:allow-other-keys)
+             (copy-recursively (assoc-ref inputs "libgnome-volume-control-source")
+                               "subprojects/gvc")))
+         (add-after 'unpack 'get-libcall-ui
+           (lambda* (#:key inputs #:allow-other-keys)
+             (copy-recursively (assoc-ref inputs "libcall-ui")
+                               "subprojects/libcall-ui")))
+         ;; we use elogind instead of systemd
+         (add-after 'unpack 'patch-systemd
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "meson.build"
+               (("libsystemd") "libelogind"))
+             (substitute* "src/meson.build"
+               (("libsystemd_dep") "libelogind_dep"))
+             (substitute* "src/util.c"
+               (("systemd/sd-login.h") "elogind/sd-login.h"))
+             (substitute* "src/main.c"
+               (("systemd/sd-daemon.h") "elogind/sd-daemon.h"))))
+         (add-before 'configure 'fix-phoc-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "data/phosh.in"
+               (("@bindir@") (string-append (assoc-ref inputs "phoc") "/bin")))))
+		 (add-after 'install 'glib-or-gtk-compile-schemas
+		  (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
+		 (add-after 'install 'glib-or-gtk-wrap
+		  (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
+         (delete 'check)    ; TODO: needs a running wayland compositor
+         )))
+    (native-inputs
+     `(("elogind" ,elogind)
+       ("gcr" ,gcr)
+       ("gettext" ,gettext-minimal)
+       ("git" ,git)
+       ("glib:bin" ,glib "bin")
+	   ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gnome-desktop" ,gnome-desktop)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("pkg-config" ,pkg-config)))
+	(inputs `(
+       ("libgnome-volume-control-source" ; needs to be present in subprojects/gvc folder
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://gitlab.gnome.org/GNOME/libgnome-volume-control.git")
+                 (commit "ae1a34aafce7026b8c0f65a43c9192d756fe1057")))
+           (file-name (string-append name "-" version "-checkout"))
+           (sha256
+            (base32
+             "0a4qh5pgyjki904qf7qmvqz2ksxb0p8xhgl2aixfbhixn0pw6saw"))))
+       ("libcall-ui" ; needs to be present in subprojects/libcall-ui folder
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://gitlab.gnome.org/World/Phosh/libcall-ui")
+                 (commit "465f6add090b623fb80c6c5cbb9ab2880ff531a4")))
+           (file-name (string-append name "-" version "-checkout"))
+           (sha256
+            (base32
+             "1as857npl2yra4zh4bfph9wvhvjck53i2qp3zzbv3mbpi36nscfr"))))
+       ("callaudiod" ,callaudiod)
+       ("libsecret" ,libsecret)
+       ("linux-pam" ,linux-pam)
+       ("network-manager" ,network-manager)
+       ("polkit" ,polkit)
+       ("upower" ,upower)
+       ("feedbackd" ,feedbackd)
+       ("libhandy" ,libhandy)
+       ("libgudev" ,libgudev)
+       ("pulseaudio" ,pulseaudio)))
+    (propagated-inputs
+     ;; "missing" schema files
+     ;; org.gnome.DejaDup.File org.guido-berhoerster.code.package-update-indicator org.blueberry
+     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ;org.gnome.desktop.wm.keybindings
+       ("gnome-session" ,gnome-session)
+       ("mutter" ,mutter)               ;org.gnome.mutter.keybindings
+       ("network-manager-applet" ,network-manager-applet) ;org.gnome.nm-applet
+       ("phoc" ,phoc)))                 ;sm.puri.phoc
+    (synopsis "Wayland shell for GNOME on mobile devices")
+    (description "Phosh is a pure Wayland prototype intended for mobile devices.")
+    (home-page "https://gitlab.gnome.org/World/Phosh/phosh")
+    (license license:gpl3+)))
+
 (define-public gnome-color-manager
   (package
    (name "gnome-color-manager")
-- 
2.34.0
P
P
phodina wrote 11 hours ago
Re: [PATCH v4]: gnu: Add phosh.
(name . 44400@debbugs.gnu.org)(address . 44400@debbugs.gnu.org)
zt0WQEBDCQ9SETrWHHx7f1ugXwdr0RKlAJanF6KxqWMSKZjjgYAKVAo3gXpnfT5aEEFavuDEwT4zM9iYggY0nSb6AK43IAjVeoHDk7MhijM=@protonmail.com
Hi Jonathan and Efraim,

I had time to look into these patches. I added all the neccessary packages for squeekboard and updated the system packages.

However, there is still issue with the build as squeekboard fails to build on missing function implementation. [1]

Efraim, could you please help with the features error? I checked other Guix rust packages but didn't get any hint.


----
Petr
From d095ecd7bbd71e8b89eb34bde25aa60b20dda662 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Mon, 1 Aug 2022 15:24:22 +0200
Subject: [PATCH v4 02/38] gnu: libdrm: Update to 2.4.112.

* gnu/packages/xdisorg.scm (libdrm): Update to 2.4.112.

Toggle diff (24 lines)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 8360708445..7dbdc120bc 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -691,7 +691,7 @@ (define-public pixman
 (define-public libdrm
   (package
     (name "libdrm")
-    (version "2.4.107")
+    (version "2.4.112")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -699,7 +699,7 @@ (define-public libdrm
                     version ".tar.xz"))
               (sha256
                (base32
-                "127qf1rzhaf13vdd75a58v5q34617hvangjlfnlkcdh37gqcwm65"))))
+                "1zr0hi7k5s7my4q9hyj6ryzg89zyjx24zbqfv3c5rcq9pl87gc00"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
-- 
2.36.1
From 7589ac66dbe8529cb9e92aaea0e87ea9881df6f5 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Mon, 1 Aug 2022 15:23:38 +0200
Subject: [PATCH v4 03/38] gnu: wlroots: Update to 0.15.1.

* gnu/packages/wm.scm (wlroots): Update to 0.15.1.
[inputs]: Add libdrm.

Toggle diff (34 lines)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index f4dcbf742e..4cc28f4279 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -1524,16 +1524,16 @@ (define-public polybar
 (define-public wlroots
   (package
     (name "wlroots")
-    (version "0.14.1")
+    (version "0.15.1")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/swaywm/wlroots")
+             (url "https://gitlab.freedesktop.org/wlroots/wlroots")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1sshp3lvlkl1i670kxhwsb4xzxl8raz6769kqvgmxzcb63ns9ay1"))))
+        (base32 "00s73nhi3sc48l426jdlqwpclg41kx1hv0yk4yxhbzw19gqpfm1h"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases
@@ -1552,6 +1552,7 @@ (define-public wlroots
            libxkbcommon
            mesa
            pixman
+           libdrm
            libseat
            wayland
            wayland-protocols
-- 
2.36.1
From 2dc6d5d450e590f39569601f3086fc37acd3f249 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 17 Nov 2021 10:58:55 +0100
Subject: [PATCH v4 04/38] gnu: Add phoc.

* gnu/packages/gnome.scm (phoc): New variable.

Toggle diff (95 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 3c4251286b..e7422e8345 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -72,6 +72,7 @@
 ;;; Copyright © 2022 Leo Nikkilä <hello@lnikki.la>
 ;;; Copyright © 2022 Rene Saavedra <nanuui@protonmail.com>
 ;;; Copyright © 2022 Alexandros Theodotou <alex@zrythm.org>
+;;; Copyright © 2021, 2022 Petr Hodina <phodina@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -215,6 +216,7 @@ (define-module (gnu packages gnome)
   #:use-module (gnu packages vpn)
   #:use-module (gnu packages web)
   #:use-module (gnu packages webkit)
+  #:use-module (gnu packages wm)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
@@ -1170,6 +1172,72 @@ (define-public mm-common
     (home-page "https://gitlab.gnome.org/GNOME/mm-common")
     (license license:gpl2+)))
 
+(define-public phoc
+  (package
+    (name "phoc")
+    (version "0.20.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.gnome.org/World/Phosh/phoc")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1mm47n5x7kjgrpxbvb0d0yvpxgzyg90mmmafb6fxhsqklf2dhryy"))))
+    (build-system meson-build-system)
+    (arguments
+     (list #:tests? #f ;requires server connection
+           #:configure-flags #~(list "-Dembed-wlroots=disabled")
+           #:phases #~(modify-phases %standard-phases
+                        (add-after 'unpack 'get-wlroots
+                          (lambda* (#:key inputs #:allow-other-keys)
+                            (copy-recursively #$(origin
+                                                  (method git-fetch)
+                                                  (uri (git-reference (url
+                                                                       "https://source.puri.sm/Librem5/wlroots.git")
+                                                                      (commit
+                                                                       "1f8bb9e0e3058fc31a14866dc52e8f83c1287a09")))
+                                                  (file-name (string-append
+                                                              name "-" version
+                                                              "-checkout"))
+                                                  (sha256 (base32
+                                                           "1551c1qrybygyfba0darb58ahj57rasnhnkdfd2yxrrg9wc5h1vs")))
+                                              "subprojects/wlroots")))
+                        (add-after 'get-wlroots 'patch-paths
+                          (lambda _
+                            (substitute* "src/server.c"
+                              (("/bin/sh")
+                               (which "sh")))
+                            (substitute* "tests/test-run.c"
+                              (("/bin/true")
+                               (which "true"))
+                              (("/bin/false")
+                               (which "false")))))
+                        (add-before 'patch-paths 'disable-failing-tests
+                          (lambda _
+                            (substitute* "tests/meson.build"
+                              (("'layer-shell',")
+                               "")
+                              (("'xdg-shell',")
+                               "")
+                              (("'phosh'")
+                               ""))))
+                        (add-before 'check 'pre-check
+                          (lambda* (#:key inputs #:allow-other-keys)
+                            (system "Xvfb :1 &")
+                            (setenv "DISPLAY" ":1"))))))
+    (native-inputs (list gobject-introspection python pkg-config
+                         `(,glib "bin") wayland-protocols
+                         xorg-server-for-tests))
+    (propagated-inputs (list gnome-desktop libinput libseat libxkbcommon wayland
+                             wlroots mutter))
+    (synopsis "Wayland compositor for mobile phones")
+    (description "Phoc is a wayland compositor for mobile phones based on
+        wlroots.")
+    (home-page "https://gitlab.gnome.org/World/Phosh/phoc")
+    (license license:gpl3+)))
+
 (define-public phodav
   (package
    (name "phodav")
-- 
2.36.1
From cc9c246a947edb96c09884c0909e492e2d3f7de3 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Mon, 1 Aug 2022 15:22:28 +0200
Subject: [PATCH v4 01/38] gnu: wayland-protocols: Update to 1.26.

* gnu/packages/freedesktop.scm (wayland-protocols): Update to 1.26.

Toggle diff (588 lines)
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 037a247243..9acd9be5cd 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -1062,7 +1062,7 @@ (define-public wayland
 (define-public wayland-protocols
   (package
     (name "wayland-protocols")
-    (version "1.23")
+    (version "1.26")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1070,7 +1070,7 @@ (define-public wayland-protocols
                     "wayland-protocols-" version ".tar.xz"))
               (sha256
                (base32
-                "0xizccackgwszjhlq7jjiv2z2gwppljx0w32ga91bxlnby8z22kc"))))
+                "04vgllmpmrv14x3x64ns01vgwx4hriljayjkz9idgbv83i63hly5"))))
     (build-system meson-build-system)
     (inputs
      (list wayland))

base-commit: 9355d463290bcc29b0885e18c9b19258934ea0a2
prerequisite-patch-id: 90b8e56fcd1629171e4dca9683932e19cd8179e1
prerequisite-patch-id: bcf680c96fd80f419acad2b92e74b094a3483aea
prerequisite-patch-id: bc5629b26e3193ba99305ee287e1b8a89db2afc4
prerequisite-patch-id: b338136ab9d94db803535f365aa294c23bc24d4d
prerequisite-patch-id: e38cb5580c148c78bf561b9306f2a37a8f4705f0
prerequisite-patch-id: 5b35ab64b941e0eb0157bb30e118c9448ef969e0
prerequisite-patch-id: c2085e87006aef7a9dbd4951f8c3f5bd2f6ec987
prerequisite-patch-id: 56047976e392f77b743c53a844b9c30017ad63c6
prerequisite-patch-id: 97776e4d87d62747c850391b8d5c26305326b8c7
prerequisite-patch-id: 527fec8ce8e80916f9ff9845ae22a51e2476e411
prerequisite-patch-id: 60807c5d8a814dec524bd51d0c0192b74acf50bf
prerequisite-patch-id: 674ab13feb5915355279421fbeb36e783b120e6b
prerequisite-patch-id: e55d303e3447c998fc07563543aee7ca4be5e17e
prerequisite-patch-id: 391f4309d9add7dd204262935fab660351441c18
prerequisite-patch-id: 4c6cdf5b51fb8cf4ebe255be941b34ba64471233
prerequisite-patch-id: a3d966442a141daa5fb2b3560efc51f035ff6f56
prerequisite-patch-id: 2be59aca8280cd4ecefdf68c5e5528057f9f9d35
prerequisite-patch-id: e1f64945128573185e0b9a1501581f105be6fd9f
prerequisite-patch-id: 3245559810dd4cb0bf669dcdb49f930b1baca98f
prerequisite-patch-id: 9003939890a867fb874befda13f0da056aefc20e
prerequisite-patch-id: 6c0f4e139478356f91447c6b30ac480424a199ba
prerequisite-patch-id: 995f45fda566ff46435e4e8a073808e6b2395e20
prerequisite-patch-id: 742ff67505fcb66fb6092e391dce0233136b5e3a
prerequisite-patch-id: 8b35f7eb917658002bef009f30bff1d209d9c0ce
prerequisite-patch-id: d71b20f0c5b7af8bd10350a03e755a1f4b798895
prerequisite-patch-id: c8a25792df3b4967cc7f91da75df0d5d4bb595d8
prerequisite-patch-id: b925a30492439fbb8e8ef3492d51312a65fa6e61
prerequisite-patch-id: e6e6ef826a16f0b0c3101193b33c1bf347cfea9a
prerequisite-patch-id: 3717a000d1232a4f831b4b505c9bf42a3d8c8aa3
prerequisite-patch-id: ed538b33d0ec4247234e2acf19ba29331b42b912
prerequisite-patch-id: fadf65adeb2e24d470468faec9891ae0e1536f7b
prerequisite-patch-id: 901e5202841f9203226f0f0413b8410e60794722
prerequisite-patch-id: a516f59895535807848c3b4cf4853083cbe1c756
prerequisite-patch-id: 7c582dda63f1adf2ae60649dcfd32a8f22e0e8d0
prerequisite-patch-id: f95d16f88cb14f2d3c2511dac8634750fb994846
prerequisite-patch-id: 913d8b358d7ea636ef879ac0638e5e28ce85ad47
prerequisite-patch-id: 1d0e4fbeb62b85be894c5d5fce9c188f8118bd83
prerequisite-patch-id: 6e5528421a90c5dae436d7fa1313d17521702ffe
prerequisite-patch-id: 71bf93ed22e061c3d566faa864fbddbaa5cb9cb7
prerequisite-patch-id: ae9730dc17822fb1ce4fad7036f7d18d04498325
prerequisite-patch-id: 22185adc459ca4c0bf69b09cab51024323fbd0b5
prerequisite-patch-id: 19a97371cbe280b4efa01ac3a345d871cd944c01
prerequisite-patch-id: 836f0df999d9d8a918a598924e4824eace803689
prerequisite-patch-id: c5fd51994c8ec77006912518d3b729ab78f83523
prerequisite-patch-id: 5aa2e5fb05205468c3f30933f3f9082ec7ae43c9
prerequisite-patch-id: 474ab219d065f9dd8a706c750c4ee3ec21f446f3
prerequisite-patch-id: 76324f5a7ccbde182b33a8b623b452062e55e71e
prerequisite-patch-id: 0373ccce5fcdeb0b1b0fc7df7bc96442a39cb1f7
prerequisite-patch-id: 92631d4f77e355a22f4b0b007aa0e2c5a5f72dac
prerequisite-patch-id: a129221c2e4a5b8cf2b1edab07ac9467ed149fd6
prerequisite-patch-id: 26d57378687d7663b026ac69e04e5871ceadb5f9
prerequisite-patch-id: 18b4accb563ba2428a48f44ee4292d7094d64f73
prerequisite-patch-id: ad5750b28221ff54d6b867c98b7af5fb25d5aac9
prerequisite-patch-id: b58f91213ba81e1db0ce24bbd1009481ab3fdad4
prerequisite-patch-id: 8eaecc1a33eb67989114008e382d9fec5ec4f4d1
prerequisite-patch-id: 3a0b984c46eb1cb8c40f48af526f375e0a9ddfd1
prerequisite-patch-id: c4c6a1c48fba77d666b65b0aaf59413158d1332d
prerequisite-patch-id: 5d24734b901412513f40b436c96c1c98774eb217
prerequisite-patch-id: 5afabecfdf58c2d6fee956e10dce31ca7536c2c4
prerequisite-patch-id: eb788af4b0b03ff62a3e7f38f94359b8317c44e7
prerequisite-patch-id: f8a4eae170c425984ecaaf31c9d821642a40144b
prerequisite-patch-id: bca4c01e6aa9c5b816af3e0c4c1328abacd07fbe
prerequisite-patch-id: 4c5056da0b790fd3b9aeccaab451cb1be5d772e8
prerequisite-patch-id: 531a2071f8170f8bcbd0b071d290743c1dbe46fc
prerequisite-patch-id: 5ad28e6c01a04faf18ef296f3cc6a4a8ff54f007
prerequisite-patch-id: ef4209611e9445417b1e4c4423b7600c9dbe91ab
prerequisite-patch-id: d65b32d77389b4401e12ad94a01091a0cfc113cd
prerequisite-patch-id: 5758a9dc85bcc47fa9ce8320d3523ff6a9496651
prerequisite-patch-id: 633e587e4c0b47577d09bf9fb9b2312a0d6df250
prerequisite-patch-id: abe1e542a7ce92ba3fb5509016b5012ec8fdeac7
prerequisite-patch-id: 0bde921f1e4efa811010c8f2b9b8980020aeac97
prerequisite-patch-id: 4ecf78ee5094a0cd899d3410b66b74ebbd7322de
prerequisite-patch-id: 2ed89b7bd8991e4d69d6d2c2db4d06f4fd4bce92
prerequisite-patch-id: 0ebe0a484430b3cac6071ad7dbb19f73a7a78929
prerequisite-patch-id: 826a3ca452f3afb171849142ee2be35495737cd6
prerequisite-patch-id: 5ffe6993fcfbd1c693624f0b151748aba91b39c5
prerequisite-patch-id: dc4a12b44b75f099e16f73cd5ababb131d51a55d
prerequisite-patch-id: e1c16599b86391120eb6c4e2fa11a37bfa2b97df
prerequisite-patch-id: f3618060608b56e00dfccf9ed6e37bcf8f9656f4
prerequisite-patch-id: 5038a7868633638d56f01f830c803d6fb6632a39
prerequisite-patch-id: b9259d9e14edf91d202c868a998b798706233a34
prerequisite-patch-id: bb7cc63d9cdf6471dcc93984e539fea99c090770
prerequisite-patch-id: 8b728a4e1df62070d20b277c15fe1b95fa3b139d
prerequisite-patch-id: 1eb2c89dd178b93e3ad0bf6e5b8bccc9b7dd8d4a
prerequisite-patch-id: 0dba9ce79fd2a5fd23bba276d666e2bb07c1c6a7
prerequisite-patch-id: adce706b1d8facc9ea2c664b5f54a576f8a60306
prerequisite-patch-id: 4698aefdb4eb9a8d5f94f1c4dfacc54cf67e0b2a
prerequisite-patch-id: 171ab57e82fa09e5447e6b4887f54c5273654ae1
prerequisite-patch-id: d843e1ea71e13f165c69613f626eb46892f332fd
prerequisite-patch-id: 0660328b85efe69adc964f5cbcac1bc7310ab050
prerequisite-patch-id: 301ec50f09090733020acadb6be0c5f0a1c751ca
prerequisite-patch-id: aced6ff8e5e86bb25c9f2f49162881ddaaee99cb
prerequisite-patch-id: f58f93b02a6eb3e4c7784d66866d0392017bc173
prerequisite-patch-id: 172bb4d27360a3d5110ff67487adee6ce3b819ac
prerequisite-patch-id: 20844855315bf8d5a780a21fd88fca36bd3f4840
prerequisite-patch-id: e62aabfbd6fe82df0aaecf4740ed728099a4e934
prerequisite-patch-id: 83425bd0207d369f1a7f26cc962bc2d5b21ea26b
prerequisite-patch-id: 175fd7632da5ec6cc96aa642b9d0b1465b20c5b8
prerequisite-patch-id: f42c225fc6a723841d8eb558c68725e682219e93
prerequisite-patch-id: b9c803184de30df8ad757021ed60bd5620de74ce
prerequisite-patch-id: ce7b0414f7f80df809a7adcd79e57fc54085b9ac
prerequisite-patch-id: 9303bf51e15f9b87ea93ce32d51cfe5d5c225411
prerequisite-patch-id: ef4a9b69fa2cb3c018458aaa11bc7b997a49972a
prerequisite-patch-id: 583832caf6b9ab88778df78e476d91c3fb21aea9
prerequisite-patch-id: 358f58389fe59e3420f0d437528a14c20c8c6bc4
prerequisite-patch-id: 5b10e270541830c1e19c3412658fc6be015dac10
prerequisite-patch-id: 85575fb28bd6efde78116f7d61e203e178d2ec78
prerequisite-patch-id: 118c9796e0f19c40e83ebcffba15d62b731f5c55
prerequisite-patch-id: 7e0410033d34d54d7531eea285708d73e4efeb22
prerequisite-patch-id: 58f89995c079f01ec1abda43beb4abc5381f8368
prerequisite-patch-id: c184b325ccf7d42a0948cbbecd20ddabab593914
prerequisite-patch-id: 38d5c3dae86630cccce62c9e010c347aa7cf765a
prerequisite-patch-id: 6a01bf37ee244426d0db8971ff8d35aa6b253b63
prerequisite-patch-id: 194cd52fd68b0023be0dcfdacc2dadeb07ca384e
prerequisite-patch-id: 4e4528389f09944663d044b76dac7ddec5602ecc
prerequisite-patch-id: 16fa627146a033311d0d00c43fd5ca8933293d23
prerequisite-patch-id: a5e02acc3338b2c1fbf9658358b578dd01999c10
prerequisite-patch-id: 8f76bd27f94e5124fca5b296fc01761d9c31d043
prerequisite-patch-id: 6bfdeda1a074f6767abcf131d53cbebd27bbd700
prerequisite-patch-id: beab3a80a3a15de26cddaef25e3d1bdf89e137a7
prerequisite-patch-id: afcfd52ddfe693b2768c2a30ab6ac740176afc9e
prerequisite-patch-id: 359df68a4ce39cc69a333d1b270b47eacdd4e68a
prerequisite-patch-id: 609b35ded90cdca19c8ab3241184ee766213a6f8
prerequisite-patch-id: 3784780cca05290479992fb40d404042463c4923
prerequisite-patch-id: 24d49c17f3f88ad16bd5a4144d5cc820635c0a08
prerequisite-patch-id: 621cd3d65aeeb53e9dc8865c86037e735f87710b
prerequisite-patch-id: 038df802ac0b2b823b01b6a05ac95139835d0e91
prerequisite-patch-id: 0ecba81c2df95bd483a978f827f6b8bf6b694f28
prerequisite-patch-id: 19a2eecbd5730e42f876f3a7a77ceb6473bcb954
prerequisite-patch-id: cb1ba957e07226ae21dd2b852aa596209af6298f
prerequisite-patch-id: 25e04ab286cc740e85143d4e5265b4ba46cbbaa0
prerequisite-patch-id: 85c5bf924bc9cc41ff30498258a90433d3b4bddf
prerequisite-patch-id: f43fdf3c5421264fce4e4ab3ea9a65a367a1d438
prerequisite-patch-id: dc9504f90f8baff5751b2852ae6cc50e7bdc018e
prerequisite-patch-id: 9cbba0e4353712d9b235d670f029287ce70a318d
prerequisite-patch-id: ec2c49dc0584d4d547f28cf5308c15449144301a
prerequisite-patch-id: 5fa88b46630d9135c6e33ab7e40ac1490aba241d
prerequisite-patch-id: ea6873e8e129144dc29e0ab9a544ce2d2e4ec4e0
prerequisite-patch-id: 86db145b5ac4286b0ea9d67c9d60a7cc9a22f650
prerequisite-patch-id: ce8bac875557b3863b09a3b5b5255ae8f6b81990
prerequisite-patch-id: 740a3b0eee31a2ee766a3229bd9774fb3e5e91ee
prerequisite-patch-id: f2cab640f0634b84628367d5d081d0067b0efa66
prerequisite-patch-id: 6f47d0b0f72e5c673adeca3f49c0501c0342a114
prerequisite-patch-id: 8ac822e91a81085788939ae95372edcbfd7413a1
prerequisite-patch-id: d03fb02a6786d816e7ef2ded785ea6efb4f61bfa
prerequisite-patch-id: cf1ae6430f636dad058532b7a6f5f087a722ec40
prerequisite-patch-id: 0b13caad86ca0c7a5cb3e708f10e950c9aa82b8e
prerequisite-patch-id: 7a208cf3f284f75eaa2e6d0c5f94647f4fc728f5
prerequisite-patch-id: ee503340184cdf4f9cf243fa408c2e412576d44b
prerequisite-patch-id: 17b80a197037c7b66940e92370f013c2f7bef0c8
prerequisite-patch-id: f604a3619b758d990a1bea56b4181d48c87ae7c0
prerequisite-patch-id: 5fc1674d4dd31c4cbc494f79b55d332b80ba6fda
prerequisite-patch-id: 8bff801d837d172648f9b23efa9517d67c5fbe6e
prerequisite-patch-id: b8567995b357c248dd0fbbff354f9c82e261c739
prerequisite-patch-id: d2df963867262d850666fafbcfcedb1ff2e7ac15
prerequisite-patch-id: 7518bcfcb8c7045a90ad8a7c2c9d1b11f2852e49
prerequisite-patch-id: f7e55b535ce6b82590753ebe1611021b22b37129
prerequisite-patch-id: 5136e384c6f115c98cecb3a987e2aef8884ee307
prerequisite-patch-id: 71cc3a9e5619d8e407b5f1193e550adc4ace9abf
prerequisite-patch-id: c1c00f4ef15cf745b551b0bca1e6769e46911510
prerequisite-patch-id: 1814af9b890e426cc52088a7f15df52b70873a20
prerequisite-patch-id: 7c61c3da5e5c16fc733084b231a2147ff65f521c
prerequisite-patch-id: b8a1d3ac793aa2e4f9bad1855c60a3b5eed348b7
prerequisite-patch-id: 2a2b20bda82e67e55294c5039c5fd239435b8665
prerequisite-patch-id: d414a542cfcd2bc83c93e731009e262e197365d8
prerequisite-patch-id: b39d06af44d38845add906db3cd602c81bd99add
prerequisite-patch-id: e36b85e9300f9f8076ec3512da6607025832f722
prerequisite-patch-id: 566b576e1ce540614a644cba76893235e713cc0d
prerequisite-patch-id: fd33ca56bc64bbf90747277d25fe515387a2f279
prerequisite-patch-id: 9edf6288e2d88bdb0eb7572faf2414518541a80c
prerequisite-patch-id: 8b1bb3d66ff34b8f044d4fb498c7c5ff98764b3c
prerequisite-patch-id: 44f0e5305a19e44e1b572e7c4ca1337b4a6b012b
prerequisite-patch-id: edc6003ff823e6265e8b4b04075b2c82661e275d
prerequisite-patch-id: 16f88705a5afde68b8eb7297ee91c5904033d54c
prerequisite-patch-id: 147d520d98a540f7645f143cfb7ce51efed5a1c9
prerequisite-patch-id: 3988b109049e408a26a33eb093e75d75ac59e7a6
prerequisite-patch-id: 8683f93e1749ba98fedeef51e8ef9a7e5c1fe557
prerequisite-patch-id: 457bc84f1e1a7d560fa02321c1e806a983c64d1f
prerequisite-patch-id: 59d7fa8a3ca057037ce4ce5a01d61a5184c69a5c
prerequisite-patch-id: f0c20f3f6cd127951ef0b98bfcc3475a84228193
prerequisite-patch-id: 744639cdcd71af8cd2bbd932e20af659f154239c
prerequisite-patch-id: b2bb6eb06cefd1154b12d19884cc2428e446f5ff
prerequisite-patch-id: f3862e1dd776c912c74250929f39988924bd3395
prerequisite-patch-id: 1af5fe46e11507025c35a6fa94192ec22cc84dc7
prerequisite-patch-id: a3ddabb65830a42cf25a9fe3127fcb2b0f0b9087
prerequisite-patch-id: d16e04f4d75698c285dac426c0e81622f27e4983
prerequisite-patch-id: 30b7180107dac98573c4b923d59ca7ecc70ed97a
prerequisite-patch-id: e52caf0c2a8c2f3f30720b5b066e379ca3a324b1
prerequisite-patch-id: c8ef774b1b89fd7f08d4d260e9c7f894682f938c
prerequisite-patch-id: acf02dba7604f17789f9716b71eab7368dd1e47b
prerequisite-patch-id: 7987418a53be489a6e903aae4a457d67e7cbb0d6
prerequisite-patch-id: bdab9ea4dba716b3b6df0855c167e58471a2f612
prerequisite-patch-id: e335ddf669b8560875e6eeae459495cad9a43fe9
prerequisite-patch-id: 4f4e94269f0448a78fa50c1aab52e9e7e0078a25
prerequisite-patch-id: 8c8c44a2fae2a42b90c83a29465c88dd374eec6a
prerequisite-patch-id: 4c4d680cafb0eb67e0ff5ea44ba0d9afe9ed40e2
prerequisite-patch-id: 02f0dc8d510d8768f44f1525274fb8641b0689fe
prerequisite-patch-id: 4e08513d98eafda803c8050cf2bea27e78729fc5
prerequisite-patch-id: 6663b7c29ea01b45ef896c01b9c7690b5c96a3ce
prerequisite-patch-id: 0006d56d6319c7d6bc3a028c690a74e619eb20dd
prerequisite-patch-id: e85fd777bb68fa538ec4d51c54161a1ce40c2ce5
prerequisite-patch-id: 194c37599c4d815c222aefee1052c5e413710d6b
prerequisite-patch-id: 4893fc491e7def6d374d8b23d203330c5e8f7e40
prerequisite-patch-id: 35f9708f236f142a025ce565456d2ee67020effe
prerequisite-patch-id: 5c7ebabe6dd74bf04bbcb7bc290acb36162b4e0a
prerequisite-patch-id: 579d37b8b7eebcd92411bc9b40ddf54ea3651c18
prerequisite-patch-id: 74ab71ff28158afdd4085ed213bc2da24f906c13
prerequisite-patch-id: 02d8c0f5f8ed4c2ba55e145f93894d6366bdfd64
prerequisite-patch-id: bdeb9d8105aff6958535335cb0509c59e9f30452
prerequisite-patch-id: 788672b66a32bc7a8d719b92059d9d1dc9ac31a4
prerequisite-patch-id: 4b09baae3a3de1ca92635a8b798eef94ee780afa
prerequisite-patch-id: 1e80a6237a2469eaaf16421b7e446142888d7bc6
prerequisite-patch-id: 0f6899375ee02888ceeb74aaabc67ee324a3aa5c
prerequisite-patch-id: 31b87483846d01322b13a4dff6822b2d7748819a
prerequisite-patch-id: dce8c740c08b67489fc71732ce451d37a15f29ce
prerequisite-patch-id: 6ed1bb91d1071fde820fefa48f91059608476fd8
prerequisite-patch-id: bc860d66dfffb6a7377f1d912e31c8baee039d6a
prerequisite-patch-id: 6369cae98b8042ae1215a42e15de38d7e29e457c
prerequisite-patch-id: 4100c64c9cac786521a6a5f61edc96d80a84a534
prerequisite-patch-id: 0ba71e20405adf057d655baafeffe08671cde9cf
prerequisite-patch-id: e96bacafcf941a9d18a249db276f8574a95c7725
prerequisite-patch-id: fbb33925da0e8721eeeb18aeec0785220ac5e627
prerequisite-patch-id: 84ea429b52d85496b52da5a9717cb9da0082d7d3
prerequisite-patch-id: 844096ad74fad245372f966b55ceecbbb547a5bc
prerequisite-patch-id: 2ffc77d78499161f2f849e8c2e27981d1fbe78b1
prerequisite-patch-id: 0f923e44e8be041ad82e0b6af55d55809141b238
prerequisite-patch-id: c6edeb1f88ae2ded3a0d68d29a7432a91cc7e782
prerequisite-patch-id: 33a639abdad5b9513bb39b55244e12e6acee510b
prerequisite-patch-id: 8d0129c4671a7efef5391807a465dabb338d094b
prerequisite-patch-id: 73f16f75a7557407b77698c0896fd50bab9beb41
prerequisite-patch-id: 3c851f45feb4790b93f0306f10f4b5edeaa96e72
prerequisite-patch-id: 7022f4a700cb01d363bc00f827c728f5bae186b4
prerequisite-patch-id: 00a86a92bbf3e306bce06b712263189aef71a4f4
prerequisite-patch-id: 521d06773da35c86d3eb1798b8d1f3e3be80ae1a
prerequisite-patch-id: 3a2f7e625d051fdd8f26ecc03a5bb7a215d75c08
prerequisite-patch-id: 002a108f2431f6c1454269408dcad7440060193e
prerequisite-patch-id: a920f9d1e440a7dc374426927ac23ca69d0f38e4
prerequisite-patch-id: 4b938d75c14b0eee99b826c608aad5abd9ca89f1
prerequisite-patch-id: c18a4a83cd9cb909434f826252d0d27e7fdd684d
prerequisite-patch-id: 81809aa5507bce8852c5be0cdc1ffe28b5a2e22d
prerequisite-patch-id: f49567beb02536c5ea4d9488c9beffe0eaaddf90
prerequisite-patch-id: 5e3586fd241ba03b71211f5d6767335ec568d50f
prerequisite-patch-id: 72191ec47cb3876c5fcd6233880dea7dfc1b165f
prerequisite-patch-id: 31f2a64d0d8849134b3e37cc5cfc2a9e54b80f2a
prerequisite-patch-id: 4cd5dd70ec7313843a0591db0033a5416225e02a
prerequisite-patch-id: 8997c8ef7221e49640b589ee3c28176fcc939e62
prerequisite-patch-id: eff6bb57aa21c8364a5ea53609cbfb7fec1668b5
prerequisite-patch-id: 28360c780872f0131eaf22e18a8d09319208538e
prerequisite-patch-id: ff082de46e0b12cd169c0be752f13ead234dc18d
prerequisite-patch-id: 6d151eb5966cc0e23c3292e24a0932f6ddce6965
prerequisite-patch-id: 54ed0ae103cd2462390dd111384a2251c3a1c7e4
prerequisite-patch-id: 08d395f0dbbe04d79b419c00a40f8c05800bd4db
prerequisite-patch-id: dd72459fb56ac6d900bdd09b6e6f8203be6dcdcb
prerequisite-patch-id: df2c204e048c16457c26112c99a8ebb00f49c026
prerequisite-patch-id: ca8d058d35e1c5ee1c3ee578128cc58c1af449a8
prerequisite-patch-id: 6cff61a512cac6d77b571c6e2ddb38b6662e536c
prerequisite-patch-id: 6d38f39c9f0407392191b51c0efcbda010467461
prerequisite-patch-id: f09b38a272c0a8c33d106fc446fbe9843079cc06
prerequisite-patch-id: 7dfdb6daabdd3781ee0df403bcc15609729cbc54
prerequisite-patch-id: 4e63299c119e60a95792d8ddc730dbe6adf7b710
prerequisite-patch-id: fb6c33b3b12e52384a4f31a47534e5f6282e5c9b
prerequisite-patch-id: 4a2a7c5324325941ff9a04fde7ba1c2f9f1d133f
prerequisite-patch-id: 5720bcf834905944989ee97c43982a44b630b80f
prerequisite-patch-id: 632d24b61ca1ab2a63640e35f04eed495294f633
prerequisite-patch-id: 1f62a3cfc36ac362559dedc675258417bd4346f7
prerequisite-patch-id: a28f4db489a4cfa73459d788c8861c975d08f4e8
prerequisite-patch-id: 5a9bf23fb2ba2dfdea5df4d330c622c19d7f59a6
prerequisite-patch-id: dde3befb54e4f26f89311395a657cbcf1ddc2fbd
prerequisite-patch-id: a3cdd3a7010710fda3fa22066237f977afd811cc
prerequisite-patch-id: 8a5ec6d378f81267b07b14eafab73ce7d45837ca
prerequisite-patch-id: b409e5063f4a50a201f0c0f6caaeb8df0db73d99
prerequisite-patch-id: 6506c7a0a46c7438c57288cb2d705e2ab0ab7138
prerequisite-patch-id: 9ad193de5f9687d466926499a1b58959b2d56433
prerequisite-patch-id: eb1dce262776d20936fb898c5578feb552afbfec
prerequisite-patch-id: c1721484d754048ab0ec9521cd345565a22b373e
prerequisite-patch-id: 8f6b59acb95a0c859067aad299eaa2211438cbff
prerequisite-patch-id: 261e5414e92d4b1feeb2cecf7a789e13204fc856
prerequisite-patch-id: 3f1b36afb9be72bb7f7bd45ae26ee68873727790
prerequisite-patch-id: 89e7cf750cbca63d8f7603fa6fe28114f3227e33
prerequisite-patch-id: b1b29745fb5dadd0188fbc28b7230b32293b911d
prerequisite-patch-id: a4b36778abf0205a7912ad3a52b075db636044a1
prerequisite-patch-id: 787cb5ebd3a295b76b67dc99adbe7dacad71eaef
prerequisite-patch-id: ed13c85a446adbc0361d6b3b355bb7643b5bc256
prerequisite-patch-id: af78f131d73fffd0df0f5118717295d22293384f
prerequisite-patch-id: b6e4c1383fe48769afaccff9ce230ce2b3d96d25
prerequisite-patch-id: abf4bf5e43c3add35eaf0a8f6a5bf29e02bb8479
prerequisite-patch-id: 8ec883209aa9b31cc2c940553bc8628288e4d772
prerequisite-patch-id: 3f38d4ae7f39365fcba2764ced432af8e4284a79
prerequisite-patch-id: bf47aa3563c7bf5902c7ae06282846072f1d1517
prerequisite-patch-id: 6c24fb90f292ed3c5daefe80f219b5e00828913a
prerequisite-patch-id: b7d5e3eaa4a6c6e23776dc65254cbb4d21d58bda
prerequisite-patch-id: bedfd32f752ec0ea1f9e457997e9429e46ba2667
prerequisite-patch-id: 040b0c20b04cc37aac4a0135b1d1a65bb762cd54
prerequisite-patch-id: 23d294ebd080e430351b88f90a0a7b2062814686
prerequisite-patch-id: 5f23ac14bfffd33e86a7c5add3addaec1c4c40f8
prerequisite-patch-id: e0edcd803183e738b1a4da585a54a7074369624f
prerequisite-patch-id: 84579028ca7600c8fc119558b526c6bb3349c951
prerequisite-patch-id: 4677856672fc932c0fa32719ee425f79dcf9c582
prerequisite-patch-id: 3c3373c575ef5097c90730d339cfdc21cca13841
prerequisite-patch-id: 1367294d5487085fa5d0e3ba06f48ac193feef44
prerequisite-patch-id: 26365f56a6565e52077fab8d1b44db6de9977aa4
prerequisite-patch-id: 5a7889f92ad1553501214b637ffeab2c74d4a81e
prerequisite-patch-id: 8ac29fcb6c7fc591d354d165105462787825a95e
prerequisite-patch-id: b3d4fa9263d6142878b3c4b51bfce3b84a0dcb75
prerequisite-patch-id: c24735fe40afb9ca5ac03dff6318f1511146de0e
prerequisite-patch-id: 83cb975a8ee963248723ea513500b386a2a31f1d
prerequisite-patch-id: ba264054d58d183db9da6a850b911119991c286d
prerequisite-patch-id: 097893decca4717f21e202f38e56ea4851341671
prerequisite-patch-id: 092768a9462b67df1b340b85ca340ac8eed02e2c
prerequisite-patch-id: f2586eb4ed73931359c8c5a07aa0121d0f1d18b1
prerequisite-patch-id: c7165ef081b10e4052bc65caeb5fcfb64d9a0bae
prerequisite-patch-id: 84e0b7967dbbbc5e816452c3ddf1feecc39b90d1
prerequisite-patch-id: c3a0d497b295c355617f87deddcd1353f4c588d6
prerequisite-patch-id: 98c407847ffd9651133354e6b19898e76e56fd6a
prerequisite-patch-id: fe7a6d23bd398cb78adf0ede9c0194f73f8f1c44
prerequisite-patch-id: ecc79204a4a373dfb553da0b48bfd280de09932c
prerequisite-patch-id: 3303019f565e82687e6e35db6eff6e406a8a04cf
prerequisite-patch-id: e623763c269cd3ce1af7008bc15e72a351b463a7
prerequisite-patch-id: bd2b34ba18df59226396715eb856d5dbaa9c48bd
prerequisite-patch-id: 1399e83a1c6796bc1675892ba8d62057744f16a8
prerequisite-patch-id: f022131d303d6471f98fd9e8f5e64c274e379e6e
prerequisite-patch-id: d4ed200c406a504b29bf549c57d7fc874729b5f9
prerequisite-patch-id: 122d818535b0d05cd6b48d7433f57fe8aec94315
prerequisite-patch-id: 0a6fcfc670c3f36106e8589c22c9753792ff2f30
prerequisite-patch-id: a8622748f6f9824786e0afea8759633ac9125bd6
prerequisite-patch-id: 38f93023ed3a8020d00ada53549075f3bf698371
prerequisite-patch-id: b89895923b626ffa38341c052b422cc0f874bc76
prerequisite-patch-id: 58198a57716dba9ddc01ca53478e383acb71bec6
prerequisite-patch-id: f7b08ab88364a47bbd330aaffba97040ead5fb82
prerequisite-patch-id: 21e0e34b9cd98adf183fec5921e838dd4dadfe29
prerequisite-patch-id: 4676c75b04e2f394f27816a526d4d3989792b2c3
prerequisite-patch-id: 758c986b916374442699f3fe497e7db7c2e2f761
prerequisite-patch-id: 9e664cc695fb7b9aa8206c810ad65370271e4f9f
prerequisite-patch-id: ab61c1c017c34919bdc3913a3286f43c7c28d5fa
prerequisite-patch-id: d3f8c83f7c58e52bd1255eab6b994fa81e1c2a23
prerequisite-patch-id: f2d80b00af3aa151eb0459036daba38694b4253a
prerequisite-patch-id: 7553222060235e3c98d76f15314bb7d84043ce0e
prerequisite-patch-id: 35041474eabd0590d35f97e4c79e300dc763898b
prerequisite-patch-id: 8880dcbbcca0a294d8ae63bf9f7c459b70ed1d8e
prerequisite-patch-id: d1be4a7215cd6e4132505356a0262d82bf6d8587
prerequisite-patch-id: cbd3c7dff3b60f06ac03121a7e4c5644d8581789
prerequisite-patch-id: 1b684b938cb8ac866ceed62111cd4edadd54f71d
prerequisite-patch-id: 68fea9bcb6dad9ebfe2dc7fd1f238cc3cd60a49a
prerequisite-patch-id: 258b5f0c790204b75ba33a4cee2af8777dc222a1
prerequisite-patch-id: 8f593862e6024b8e4ff828de13e4ac4160d5fcea
prerequisite-patch-id: 192b30b337ac3faf967a042e9f6d3e7a1866f480
prerequisite-patch-id: 9a32f41de125444c4643d20b58cca4cac991039d
prerequisite-patch-id: bc458a055c4ac2c48f4e08c1502e560ba6480f81
prerequisite-patch-id: de88cef0a3db563ece6e6e3efc09841815593753
prerequisite-patch-id: f65f09fcd78e448cdc8d4be62e3be1f37d6a5aa3
prerequisite-patch-id: 60a8eea516983cbd56f40f270a1a7065e9e18ef9
prerequisite-patch-id: 65d04dc4f2a6f76a51c9097ad69e5232b364c0be
prerequisite-patch-id: a8b142b053ceef60feb7fc413d85c1b21a7f4199
prerequisite-patch-id: 64a950771b66ab056a4cf2f298271d658777fd63
prerequisite-patch-id: 0f1b59f8ceb0d302ae41f50d5038c1edad9bd6f7
prerequisite-patch-id: e37c5646f7a2af4c3e82f617fa57d837f7c596f0
prerequisite-patch-id: e8edd4caaf503ef333e96357f4c0459680a304d8
prerequisite-patch-id: 4af7e9f929fc1f063ed950b8210ed36480353671
prerequisite-patch-id: 9d52afcf31cae25210a4995f051ca847fb614f5b
prerequisite-patch-id: 94a92bbabf359750465843ee45e1f41bb0bf17b4
prerequisite-patch-id: eb095d28cfb981ae37d09ae3a3abca221d9011f8
prerequisite-patch-id: efa994bb6914b914450b2aa5ea603fa853f7b196
prerequisite-patch-id: 49e63c0815a2af027d9f3d6e48eef901a39c63d6
prerequisite-patch-id: 34f6bf9189c50ac07370c10501e65f020d0d5924
prerequisite-patch-id: cb2926a2d0bc58080a131300da10449d1904ec72
prerequisite-patch-id: a297cf51da3d956ba33fd38fe15dd1aa72e39488
prerequisite-patch-id: 151b484a92822aea59ed2f870b7440425475d0f7
prerequisite-patch-id: a65a5764adde8faedcd7bee2332277a1cf3c829e
prerequisite-patch-id: f9bd4e8acdbb775210a256bd621d930c826be008
prerequisite-patch-id: fa64dcf2f3d4f7b1f143ca8581ac121c5522e305
prerequisite-patch-id: d1a3b367d5651e20351eb3a60bf440a038dd78a8
prerequisite-patch-id: 8775d46cbb156a07779e83b7313e2241e0ab4a16
prerequisite-patch-id: 337520b6982054ff6feda1d17ee5e2e3c8775a77
prerequisite-patch-id: 6893cf4a12aab60e1032295e6110c0ea1348bf02
prerequisite-patch-id: 1cc8f05c59d5fccdb4bc066973eb9fcec1c8a8aa
prerequisite-patch-id: 6e7e0df43c1abc2cbf314d6fc884ded1222639a9
prerequisite-patch-id: 049183673546856628a7a00a16d1a116b2c9f36a
prerequisite-patch-id: ce32fe761da51f2a1d0656957c49c0d5a0962bef
prerequisite-patch-id: 35e302766407958eb86f418e81147761ad12f5ac
prerequisite-patch-id: ba71e70c684ff65129d2ff59c2ccfc0953283c94
prerequisite-patch-id: d14c832c9e94f9109d78ec4f23f1b03720e7c725
prerequisite-patch-id: ca94cb57432697e6e3a71042d8a3eacc23040455
prerequisite-patch-id: b9fbbdb325f22a199779ab3bb0de9404c73f4f51
prerequisite-patch-id: bfa29a623d0f811e5e0ad05126927a09999e2c5d
prerequisite-patch-id: 3ca48e7ea496732a5dbcd879327c4abc2e74b641
prerequisite-patch-id: 56990fa03ce84ee36ebaa392d238a87e452c2ef6
prerequisite-patch-id: 8acdca4ceabbaa75251f29e3e68185e7ea0c8d8d
prerequisite-patch-id: 0027c56ddaebf5c7a8266b8361998de31c65b14b
prerequisite-patch-id: adf26afc50db0b36eb3bbc2bd9dc19aa7a1e356c
prerequisite-patch-id: 9e96f32bf59de1aa052a1b89e6f2443c2220433e
prerequisite-patch-id: f72e6ed163fb1aa68c0f5960b1a8e0fb681119f2
prerequisite-patch-id: 2e8bd3a5e66e5b68500afd9faabef62b69029346
prerequisite-patch-id: f5cb4aa5d9d314043d4a4e90e9d962f54f102ac7
prerequisite-patch-id: e23faba52486800cbbb5cb97e4e6712a67d2836d
prerequisite-patch-id: d9c12bacaabb8d8dcf3cb3b363f2ac05c69ea372
prerequisite-patch-id: 0970c356b0b6b9b86478410f6bccd5370bd9c625
prerequisite-patch-id: 7617deb2043275962a58fb7de66728daf438f9da
prerequisite-patch-id: 0f440466591ad9c0e3927a897c14777254941fae
prerequisite-patch-id: d66b0f20607ebba6a6566da8945f373041d48a25
prerequisite-patch-id: df07ac09b540815f118ceca544cd7c9935daf130
prerequisite-patch-id: 872de8fd1d9e697a2cc7244d423e0dc44f83d0a2
prerequisite-patch-id: 56f5337cbdff97f2b20a0c624a7d7825589b2f19
prerequisite-patch-id: fbc9a62deb1d62c1ec647f970ff4212796ec175f
prerequisite-patch-id: b96b3cf34b678643f694ef786b6f87a99325a1cd
prerequisite-patch-id: 9f2bb078f43dc15f51b1c58df1d238721ae17fae
prerequisite-patch-id: cf300c5cad05e103ba22d31c9468ccbc4d6c4d6f
prerequisite-patch-id: 4e5d4057c7795eaba5c2d8e2b79b33c14bf893f9
prerequisite-patch-id: 4a227b5d3d7a80fd9e005ff7b3c221af03d0ab36
prerequisite-patch-id: 7abe4a0e8b556f1bfdef6c865340432fa5bba2f0
prerequisite-patch-id: 97fe8649c7058b61c5fa3d8896560a2ec53befc5
prerequisite-patch-id: ae7d668895da6e470d5f6df8a92867b5ad769025
prerequisite-patch-id: 66c160ad90c66a148c9bc2398b514582999c4c39
prerequisite-patch-id: 768fe99ff1de6c4fb1d58d01b1228c0f998cff0f
prerequisite-patch-id: cd7ecce24010576b3312c32accd3487f131df8ef
prerequisite-patch-id: d66474fe51d042c6b139955ad44e41c5ee1e18fb
prerequisite-patch-id: 9c7ccb0265898dd5314521ce654f93b140268288
prerequisite-patch-id: a8beff6f8cf865380761e753a22c321c5292d112
prerequisite-patch-id: 278f4a7e940290440d3ee4f876a10aac7ed823fc
prerequisite-patch-id: 386a5abf4b304bde05c4fbe846c40951c09f9acc
prerequisite-patch-id: 3ec5aa28d933c3177e29edbd963ae82c1693f0ae
prerequisite-patch-id: 4c42875c71f501f41d4ceb6653281ad96edcad4f
prerequisite-patch-id: f98586d89d8b7a7c34797b7f442155196013e9c0
prerequisite-patch-id: 93fbc195ae8bc02cbcba254746b2a8dbfe515b5e
prerequisite-patch-id: 4341e16268ec9b046eca55e2551f96f9e343fd88
prerequisite-patch-id: 87a3eff238340745e4325d50766db7a948617241
prerequisite-patch-id: 4cd5f44452fde3a2df56bcaa2b63db8c34af563f
prerequisite-patch-id: e00fd927cbcb20eda3fa5648539a50f27554f146
prerequisite-patch-id: 6b77e9cd0c9bc581a865e2513d0f1bf9df64fdab
prerequisite-patch-id: 88815ec4b0f5750a9b5067df48c2bf168f44d4a5
prerequisite-patch-id: f22be28bec0987024b4baceb42dff478d4d9284c
prerequisite-patch-id: 9ba5d7adffb5057f85bd3d86410c7546493b7688
prerequisite-patch-id: 124162821553bcdee210a0ac6c6e5a5af26d6e3d
prerequisite-patch-id: 9f4e788bbfc4f3919cdfc40c01e8941ec6fd2de7
prerequisite-patch-id: 4b0ae6368b38a3a3f3cfff83fff2f5e9e47558dc
prerequisite-patch-id: 07b9cbd4bf96fe9881f9b19c80e0ecd94c7f7406
prerequisite-patch-id: 5d9e718068d116197d98747ec8e11fad2744a694
prerequisite-patch-id: 64485648528acc1234597fa588a3bbf9a73ab0d0
prerequisite-patch-id: 002a1a5c27fe2054a93eea5093e4a918c097046b
prerequisite-patch-id: c9d3ae56bdc0f3801f405214d07dfa625d0e5682
prerequisite-patch-id: a9335be36ab53836e81e64a53514670f82e90bc7
prerequisite-patch-id: 44e5c0a87820aaa6097e59f8a715065fc8001097
prerequisite-patch-id: c62e2e3258f51d872be1636066b756d2f746e1e7
prerequisite-patch-id: b1f8d3edac75cd8a439d84f10b8ddb1f3065575a
prerequisite-patch-id: 72b34b60966ec0f7a6aa503c22f7359ee1d271d9
prerequisite-patch-id: 658a825a72595513f9170dadd730a88ed643718e
prerequisite-patch-id: 39f93ef71e2e409d073c723626bc25dd272c35c2
prerequisite-patch-id: b0695a5d05064d6ae4b4b8e586d0e87a056d8a21
prerequisite-patch-id: 015080a9769eb0c2e90b435d4b7eace23cc9bf22
prerequisite-patch-id: f4cd1ec09ee9af68bac4ebc8cd96161f5ec05425
prerequisite-patch-id: 15b8febd04efee50f4075854f8785c823f564e1f
prerequisite-patch-id: f3b4b15dbcf9cc755865556aa8318ce84b8c5f97
prerequisite-patch-id: 16d5eccabcf8821463b0b082c7c5d9e03d198769
prerequisite-patch-id: bd44e63b8d6b8617c74a84fe823e812d773973f4
prerequisite-patch-id: e504f8fb19be5ffee7d86f75bffecb280b1efbf2
prerequisite-patch-id: d94b9560ebc9d9a6b8ca8d8d2ff846b6a93c17b8
prerequisite-patch-id: 86b91bc191b6bf9f33301530992fba6fc1da4d14
prerequisite-patch-id: 8fa9efb9b9c36281d69acb4222fb1eb0e0701b18
prerequisite-patch-id: 07c070842ebc619f21b0100251a550baf487c128
prerequisite-patch-id: a69f640eaf540fefa385d00c69f77fe379e38f6d
prerequisite-patch-id: cbc35eed50d5563b7b509bc87e9d0da358187ef1
prerequisite-patch-id: 9fd2a43565c2dffae6b59eb4e4a5022e2fd051a8
prerequisite-patch-id: bc0104e31c0d137c9038ba1972f695be42ae987d
prerequisite-patch-id: 639593f3cd9dc38ec84cbc6d0a08ae090698f976
prerequisite-patch-id: 3987fd45996aba76dec5d1f7c615fb582e0e983d
prerequisite-patch-id: a422a958e418303bd3c693f921f8d759f7548333
prerequisite-patch-id: 9ca8936602b167ec3c0ea3078e2d29dd1a04c269
prerequisite-patch-id: ba27e7eae4d20bf1bacf79779954ad9a78be87d8
prerequisite-patch-id: a755190e04a22c6d2200a04acc31d3a557a5c08c
prerequisite-patch-id: c89ea46a4aac7c66a65b4d93aeb74a2ee5c6302b
prerequisite-patch-id: b7abbf7f2860110808c40f9057f8812c64223bb2
prerequisite-patch-id: 01f43b07a5062bd743c020c639c83d7de0a5f94a
prerequisite-patch-id: fa362c8e193fc10a35474c019426f2162bf75035
prerequisite-patch-id: 5d50ba3e1d3ba714ac697407ea3c9e1a22dfea53
prerequisite-patch-id: 0d27c71781f0017d181f6333064e3228559e2709
prerequisite-patch-id: a2ee4a6bd7a21d0644f2483aad10a73940e26f7e
prerequisite-patch-id: 0bd36ee8824d7976a89fccb2351f8678a766a35b
prerequisite-patch-id: b9f48b55f99044d1845fd248a1840da19969e936
prerequisite-patch-id: 15c99cc945c84722aae120130f1376e60876f8d0
prerequisite-patch-id: 154995006b72a3f5f76a64b51d9c2f7956e9f902
prerequisite-patch-id: a0ac309f09722d4ea28915ce058cdd587ab54d53
prerequisite-patch-id: 744d86f0b8f48c8becbd61e1a861ce3c728da9de
prerequisite-patch-id: e0926b32e7dc4e770b938599e1c3ae0dbbb8d6d7
prerequisite-patch-id: 0c7ead88de319f00673aafa0c1458846f892d7cf
prerequisite-patch-id: 5d96173fb5d7717b801bfc83d4edc3aeac896925
prerequisite-patch-id: 74d09285eec27aaa7525da4ed9eacc2dcabc5165
prerequisite-patch-id: 088a96dd6a915a6d58fb0de035f6c2c46a334ab3
prerequisite-patch-id: f8bc8a8cd763b71230051053f5053649fc905bdb
prerequisite-patch-id: 4bd4baedd871ac4efead57e9760f3a8ef4f7628c
prerequisite-patch-id: 4dcb958386ce59970c941f4905032eee2eebc42a
prerequisite-patch-id: ab9ccb98b2853c9ce3688e8d77fe49116f1e36df
prerequisite-patch-id: 42f625dfaa7692da061d2412ff9cc52f1f77d885
prerequisite-patch-id: 9862741e21cabb10c8b9e332e18fa1bac18773aa
prerequisite-patch-id: b7b034618ce89e00e819b4b11fb5f2faf6190424
prerequisite-patch-id: 027146d191ed2bb8310820e3be1fb81b27be63e6
prerequisite-patch-id: 61ec8131e7241e9564d375a9e0b27c240316a157
prerequisite-patch-id: edee02135ac0bb9ed117b73eba3b56b7ff6e5189
prerequisite-patch-id: 7e8b420e878f166995f5e98999cc5bfba163a161
prerequisite-patch-id: 5c3278b420c59c593b0b98228469d4a9a10bfc90
prerequisite-patch-id: 53d6f70b0ea467509f87f1131d96bf3d3cff6fa5
prerequisite-patch-id: a873f942e0cce67e013e694d2878d68cdf5769dd
prerequisite-patch-id: 5b5b240722889c20a97001c8ee9925b6e886c823
prerequisite-patch-id: 1d0ff11ac59cb1488983af66ff84f53aceefc402
prerequisite-patch-id: 6baeb8d36ae659890e2992d917c7582f6918352b
prerequisite-patch-id: 1acf169669e9e3929b5e34a27b1b06481d7e9cd4
prerequisite-patch-id: 018a7c729baffab9f359f9ad74519f1be1540c42
prerequisite-patch-id: 2d81781ef4d2a082d87b7a89d9807eef98cf53e8
prerequisite-patch-id: 1b711c9c58488d97453b8cc7c703161386d61220
prerequisite-patch-id: 89f0df85da0dd133748b6fab037aaa4f97f7d647
prerequisite-patch-id: 2fdbc7a3843619052a4f08d8cb8cc64c060e3d51
prerequisite-patch-id: 870cc435d0a491ba2cb2f183e889fe0795b8889c
prerequisite-patch-id: 6976d74d3f243a75aa09819e80f8bf804f76c53a
prerequisite-patch-id: 6cc84af7c2ae39ff0e41e987ac6a2ff44c2e5dac
prerequisite-patch-id: 3a46e0c9aacf8f2d990d116f7a0c43142e750699
prerequisite-patch-id: 38b9e07dd84cbdc7c58c60c097fc26e6fcfdda67
prerequisite-patch-id: 51bb41d39062682ff245df0479771e94dce4a326
prerequisite-patch-id: 9e1ac077dc324474fa84444261843e912b0ecb24
prerequisite-patch-id: 682db5b6252f425989605badcfb66ccf9f342c83
prerequisite-patch-id: 66bee6f1744783517451329c267ff6d5ac7bde6f
prerequisite-patch-id: ac1f65f9a9b7d9a47e8ff2de76414eeff4f38d66
prerequisite-patch-id: b5fda4ceab5cf0e6cd66f2524ba19eeccc5641a7
prerequisite-patch-id: d9574c85128bba718211b2587341a9e4686359a2
prerequisite-patch-id: d06164efb899373b65c07478b6343fcc4a7d63a4
prerequisite-patch-id: baf2cd94df96f0e1e3db7bce8842078f40d1a600
prerequisite-patch-id: c2cd81cf08bf8980658c94821e3d57bab0c6f9bd
prerequisite-patch-id: 4358a4f7ad32e2bd2581b95e28c91e2ba5259020
prerequisite-patch-id: 2992e868e5f542de2933ee803c976a8e6686ff45
prerequisite-patch-id: 4b7da8e33e2b404be66716330bd0f841e9f0e772
prerequisite-patch-id: 735984ed19d7e995fdabdd9108cb5a24083936ff
prerequisite-patch-id: 6b5fd19d0256f6a0aed37a0d0757ae045ec192c7
prerequisite-patch-id: 4de0932c859608440698d1daa1ca185dedd19980
prerequisite-patch-id: 4980bd2dae5b448714b9ab23df7008b90893448c
prerequisite-patch-id: e85534f96a07f34ae67bbbf80f2498e957bd1d69
prerequisite-patch-id: 08d01d8da9a85b9a207a5efda591ef38e39455d0
prerequisite-patch-id: c4ad9976b18903ea2c0689843f5c44abc1797f98
prerequisite-patch-id: c6d03f217fd3e814d5bd47e5f378e90044184642
prerequisite-patch-id: 8f0134728396b0957c5a23fe09267995991d6be3
prerequisite-patch-id: 659aac392cd21712f2010543943c9838f5533b0c
prerequisite-patch-id: fe03a37e729ca7e3b612ea17992a9c361f7aec92
prerequisite-patch-id: dd930f48f20898a9402b15a8b9bbd4d877803b69
prerequisite-patch-id: 9f13abe5601a87c81852460ad7c7a7c561692d56
prerequisite-patch-id: 78b9416fa0cad475706a12c38cc9849311fa1dd0
prerequisite-patch-id: 65ba23b7034908141aeb490c5c927915dae9d42f
prerequisite-patch-id: f817277654797bc78b5bd611b346a3df5993f80d
prerequisite-patch-id: 579867ea7dd9cdb973f10ca326c4a97a5a1ebd44
prerequisite-patch-id: d7f3329b39bbb405c64840b9d48567d3cbe34c46
prerequisite-patch-id: ca117e9a7aefd4016493466d82f927b837e13b85
prerequisite-patch-id: 642aeed18b9ced5ba5b94c4975b1c36cb2557e52
prerequisite-patch-id: 6f1802560e7d6bb2020bf5483a9227044ff5e161
prerequisite-patch-id: ca83a84f10a5a079ee853a9763056bb47a24b947
prerequisite-patch-id: c092ea2aeef625302232464a39cf424ed1e801d3
prerequisite-patch-id: 76ba22dd462d0b4277e16f37b8fb57d7fe737476
prerequisite-patch-id: 78b030169bc5b98a95be48148189a878df88412a
prerequisite-patch-id: 133f37d00b6c809e72573f04eae477ce9796041f
prerequisite-patch-id: 652f4998e134d42f4f14ac3a7ff03a76e37f3ba1
prerequisite-patch-id: dcf50976eacbd07695a61b6eb58598224aae566d
prerequisite-patch-id: 8ca6c9c0fdf70752b127785138889aec865e31dd
prerequisite-patch-id: f5b82b990df33a34cb7f3bebc55903e41f51d198
prerequisite-patch-id: 7da41d7af8ab21a4b60195e9601be1aac290c789
prerequisite-patch-id: b7bfccc266a8ba821f9b7cfe42111a80938db485
prerequisite-patch-id: 640770eb2294365e983c26623939cbe9d4e74c0c
prerequisite-patch-id: b10e02df5c0ad161d737cfd6baff8c784fc2763f
prerequisite-patch-id: e44454f094d056b9d15de4e96d478bd72ac24918
-- 
2.36.1
From 001e4a688170fec3f01d1bbf84e530f4ca52545b Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 3 Aug 2022 10:18:34 +0200
Subject: [PATCH v4 07/38] gnu: Add rust-hashbrown-0.12.

* gnu/packages/crates-io.scm (rust-hashbrown-0.12): New variable.
(rust-hashbrown-0.9): Remove variable.

Toggle diff (57 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index cfafce9aa3..792bf0157f 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -26494,8 +26494,36 @@ (define-public rust-hash32-derive-0.1
 @code{#[derive(Hash32)]}.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-hashbrown-0.12
+  (package
+    (name "rust-hashbrown")
+    (version "0.12.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "hashbrown" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1268ka4750pyg2pbgsr43f0289l5zah4arir2k4igx5a8c6fg7la"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-ahash" ,rust-ahash-0.7)
+                       ("rust-bumpalo" ,rust-bumpalo-3)
+                       ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+                       ("rust-rayon" ,rust-rayon-1)
+                       ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
+                       ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
+                       ("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/rust-lang/hashbrown")
+    (synopsis "Rust port of Google's SwissTable hash map")
+    (description "This package provides a Rust port of Google's SwissTable
+hash map.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-hashbrown-0.11
   (package
+    (inherit rust-hashbrown-0.12)
     (name "rust-hashbrown")
     (version "0.11.2")
     (source
@@ -26515,12 +26543,7 @@ (define-public rust-hashbrown-0.11
         ("rust-rayon" ,rust-rayon-1)
         ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
         ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
-        ("rust-serde" ,rust-serde-1))))
-    (home-page "https://github.com/rust-lang/hashbrown")
-    (synopsis "Rust port of Google's SwissTable hash map")
-    (description "This package provides a Rust port of Google's SwissTable
-hash map.")
-    (license (list license:asl2.0 license:expat))))
+        ("rust-serde" ,rust-serde-1))))))
 
 (define-public rust-hashbrown-0.9
   (package
-- 
2.36.1
From 64dd0a8e2c989a3faf2c874e567485141fe75a7c Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 17 Nov 2021 11:14:15 +0100
Subject: [PATCH v4 06/38] gnu: Add phosh.

* gnu/packages/gnome.scm (phosh): New variable.

Toggle diff (130 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index e7422e8345..7f7bf28bfb 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -94,6 +94,7 @@ (define-module (gnu packages gnome)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages aidc)
   #:use-module (gnu packages aspell)
+  #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages backup)
@@ -1281,6 +1282,115 @@ (define-public phodav
    (home-page "https://wiki.gnome.org/phodav")
    (license license:lgpl2.1+)))
 
+(define-public phosh
+  (package
+    (name "phosh")
+    (version "0.17.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.gnome.org/World/Phosh/phosh")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1v8i02jjqlghh759pyjrcwn3rys9fwn38b206v1jsbl990hhv03y"))))
+    (build-system meson-build-system)
+    (arguments
+     (list #:modules '((guix build meson-build-system)
+            ((guix build glib-or-gtk-build-system)
+            #:prefix glib-or-gtk:)
+            (guix build utils)
+            (ice-9 match))
+           #:imported-modules `((guix build glib-or-gtk-build-system)
+            ,@%meson-build-system-modules)
+           #:phases #~(modify-phases %standard-phases
+                        (add-after 'unpack 'get-submodules
+                          (lambda* (#:key inputs #:allow-other-keys)
+                            (copy-recursively #$(origin
+                                                  (method git-fetch)
+                                                  (uri (git-reference (url
+                                                                       "https://gitlab.gnome.org/GNOME/libgnome-volume-control.git")
+                                                                      (commit
+                                                                       "ae1a34aafce7026b8c0f65a43c9192d756fe1057")))
+                                                  (file-name (string-append
+                                                              name "-" version
+                                                              "-checkout"))
+                                                  (sha256 (base32
+                                                           "0a4qh5pgyjki904qf7qmvqz2ksxb0p8xhgl2aixfbhixn0pw6saw")))
+                                              "subprojects/gvc")
+                            (copy-recursively #$(origin
+                                                  (method git-fetch)
+                                                  (uri (git-reference (url
+                                                                       "https://gitlab.gnome.org/World/Phosh/libcall-ui")
+                                                                      (commit
+                                                                       "d3a4fe96fac2f18a92b8ec0e7bdfb92ccb753e63")))
+                                                  (file-name (string-append
+                                                              name "-" version
+                                                              "-checkout"))
+                                                  (sha256 (base32
+                                                           "1iwnirc81h53wzsrckc9wy5w0kmqil2f83d8vhip6sd1fmz5gkb2")))
+                                              "subprojects/libcall-ui")))
+                        (add-after 'unpack 'patch-systemd
+                          (lambda* (#:key inputs #:allow-other-keys)
+                            (substitute* "meson.build"
+                              (("libsystemd")
+                               "libelogind"))
+                            (substitute* "src/meson.build"
+                              (("libsystemd_dep")
+                               "libelogind_dep"))
+                            (substitute* "src/util.c"
+                              (("systemd/sd-login.h")
+                               "elogind/sd-login.h"))
+                            (substitute* "src/main.c"
+                              (("systemd/sd-daemon.h")
+                               "elogind/sd-daemon.h"))))
+                        (add-before 'configure 'fix-phoc-path
+                          (lambda* (#:key inputs #:allow-other-keys)
+                            (substitute* "data/phosh.in"
+                              (("@bindir@")
+                               (string-append (assoc-ref inputs "phoc") "/bin")))))
+                        (add-after 'install 'glib-or-gtk-compile-schemas
+                          (assoc-ref glib-or-gtk:%standard-phases
+                                     'glib-or-gtk-compile-schemas))
+                        (add-after 'install 'glib-or-gtk-wrap
+                          (assoc-ref glib-or-gtk:%standard-phases
+                                     'glib-or-gtk-wrap))
+                        (delete 'check))))
+    (native-inputs (list elogind
+                         gcr
+                         gettext-minimal
+                         git
+                         `(,glib "bin")
+                         gsettings-desktop-schemas
+                         gnome-desktop
+                         `(,gtk+ "bin")
+                         pkg-config
+                         python))
+    (inputs (list callaudiod
+                  libsecret
+                  linux-pam
+                  network-manager
+                  polkit
+                  upower
+                  feedbackd
+                  libhandy
+                  libgudev
+                  pulseaudio))
+    (propagated-inputs
+                       ;; "missing" schema files
+                       ;; org.gnome.DejaDup.File org.guido-berhoerster.code.package-update-indicator org.blueberry
+                       (list gsettings-desktop-schemas ;org.gnome.desktop.wm.keybindings
+                             gnome-session
+                             mutter ;org.gnome.mutter.keybindings
+                             network-manager-applet ;org.gnome.nm-applet
+                             phoc)) ;sm.puri.phoc
+    (synopsis "Wayland shell for GNOME on mobile devices")
+    (description
+     "Phosh is a pure Wayland prototype intended for mobile devices.")
+    (home-page "https://gitlab.gnome.org/World/Phosh/phosh")
+    (license license:gpl3+)))
+
 (define-public gnome-color-manager
   (package
    (name "gnome-color-manager")
-- 
2.36.1
From d1f3e15657bd6cd0e1b056c818f12842359e6755 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 3 Aug 2022 11:25:27 +0200
Subject: [PATCH v4 17/38] gnu: Add rust-ntest-timeout-0.7.

* gnu/packages/crates-io.scm (rust-ntest-timeout-0.7): New variable.
(rust-ntest-timeout-0.3): Inherit from above.

Toggle diff (55 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index b1abacf533..4890c8b6da 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -38436,8 +38436,34 @@ (define-public rust-ntest-test-cases-0.3
     (description "This package provides test cases for ntest framework.")
     (license license:expat)))
 
+(define-public rust-ntest-timeout-0.7
+  (package
+    (name "rust-ntest-timeout")
+    (version "0.7.5")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ntest_timeout" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "08v3r6hggh43qabl887pkz88k6lg6hrc62mppxyabb0pw44v03di"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-ntest-proc-macro-helper" ,rust-ntest-proc-macro-helper-0.7)
+                       ("rust-proc-macro-crate" ,rust-proc-macro-crate-next)
+                       ("rust-proc-macro2" ,rust-proc-macro2-1)
+                       ("rust-quote" ,rust-quote-1)
+                       ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/becheran/ntest")
+    (synopsis "Timeout attribute for the ntest framework")
+    (description "This package provides a timeout attribute for the ntest
+framework.")
+    (license license:expat)))
+
 (define-public rust-ntest-timeout-0.3
   (package
+    (inherit rust-ntest-timeout-0.7)
     (name "rust-ntest-timeout")
     (version "0.3.3")
     (source
@@ -38454,12 +38480,7 @@ (define-public rust-ntest-timeout-0.3
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1)
-        ("rust-timebomb" ,rust-timebomb-0.1))))
-    (home-page "https://github.com/becheran/ntest")
-    (synopsis "Timeout attribute for the ntest framework")
-    (description "This package provides a timeout attribute for the ntest
-framework.")
-    (license license:expat)))
+        ("rust-timebomb" ,rust-timebomb-0.1))))))
 
 (define-public rust-num-0.4
   (package
-- 
2.36.1
From a6cc2b3d61c58eb41e19198137006022362496cc Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 3 Aug 2022 15:04:55 +0200
Subject: [PATCH v4 08/38] gnu: Add rust-object-0.29.

* gnu/packages/crates-io.scm (rust-object-0.29): New variable.
(rust-object-0.28): Inherit from above.

Toggle diff (61 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 792bf0157f..33bc57ac4e 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -39318,8 +39318,39 @@ (define-public rust-objc-test-utils-0.0
      "This package provides utilities for testing Objective-C interop.")
     (license license:expat)))
 
+(define-public rust-object-0.29
+  (package
+    (name "rust-object")
+    (version "0.29.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "object" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0lzblxwxcih7j4z2cfx9094caax97hlfm9n0y5hlavda6cn8n591"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+                       ("rust-crc32fast" ,rust-crc32fast-1)
+                       ("rust-flate2" ,rust-flate2-1)
+                       ("rust-hashbrown" ,rust-hashbrown-0.12)
+                       ("rust-indexmap" ,rust-indexmap-1)
+                       ("rust-memchr" ,rust-memchr-2)
+                       ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
+                       ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
+                       ("rust-wasmparser" ,rust-wasmparser-0.57))))
+    (home-page "https://github.com/gimli-rs/object")
+    (synopsis "Unified interface for reading and writing object file formats")
+    (description
+     "This package provides a unified interface for reading and writing object
+file formats.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-object-0.28
   (package
+    (inherit rust-object-0.29)
     (name "rust-object")
     (version "0.28.2")
     (source
@@ -39356,13 +39387,7 @@ (define-public rust-object-0.28
              (substitute* "Cargo.toml"
                (("1.6.\\*")
                 ,(package-version rust-indexmap-1)))
-             #t)))))
-    (home-page "https://github.com/gimli-rs/object")
-    (synopsis "Unified interface for reading and writing object file formats")
-    (description
-     "This package provides a unified interface for reading and writing object
-file formats.")
-    (license (list license:asl2.0 license:expat))))
+             #t)))))))
 
 (define-public rust-object-0.24
   (package
-- 
2.36.1
From aad26434e8ab6fca901b1351102f0e4191a71f51 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 3 Aug 2022 15:08:30 +0200
Subject: [PATCH v4 09/38] gnu: Add rust-object-0.27.

* gnu/packages/crates-io.scm (rust-object-0.27): New variable.

Toggle diff (37 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 33bc57ac4e..e1b19b9612 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -39389,6 +39389,30 @@ (define-public rust-object-0.28
                 ,(package-version rust-indexmap-1)))
              #t)))))))
 
+(define-public rust-object-0.27
+  (package
+    (inherit rust-object-0.28)
+    (name "rust-object")
+    (version "0.27.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "object" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1ygv9zgi9wz6q5f2z9xn72i0c97jjr1dgj30kbyicdhxk8zivb37"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+                       ("rust-crc32fast" ,rust-crc32fast-1)
+                       ("rust-flate2" ,rust-flate2-1)
+                       ("rust-indexmap" ,rust-indexmap-1)
+                       ("rust-memchr" ,rust-memchr-2)
+                       ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
+                       ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
+                       ("rust-wasmparser" ,rust-wasmparser-0.57))))))
+
 (define-public rust-object-0.24
   (package
     (inherit rust-object-0.28)
-- 
2.36.1
From f4e82fd66050abe57d4e5b49504a5c931c6f0ac6 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 3 Aug 2022 10:17:23 +0200
Subject: [PATCH v4 10/38] gnu: Add rust-gimli-0.26.

* gnu/packages/crates-io.scm (rust-gimli-0.26): New variable.
(rust-gimli-0.23): Remove variable.

Toggle diff (63 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index e1b19b9612..dc3b6566b4 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -25027,8 +25027,41 @@ (define-public rust-gif-0.11
     (description "This crate provides a GIF de- and encoder.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-gimli-0.26
+  (package
+    (name "rust-gimli")
+    (version "0.26.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "gimli" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0pafbk64rznibgnvfidhm1pqxd14a5s9m50yvsgnbv38b8n0w0r2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+                       ("rust-fallible-iterator" ,rust-fallible-iterator-0.2)
+                       ("rust-indexmap" ,rust-indexmap-1)
+                       ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
+                       ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
+                       ("rust-stable-deref-trait" ,rust-stable-deref-trait-1))
+       #:cargo-development-inputs (("rust-memmap2" ,rust-memmap2-0.5)
+       ("rust-typed-arena" ,rust-typed-arena-2)
+       ("rust-byteorder" ,rust-byteorder-0.5)
+       ("rust-test-assembler" ,rust-test-assembler-0.1)
+       ("rust-object" ,rust-object-0.29))))
+    (home-page "https://github.com/gimli-rs/gimli")
+    (synopsis "Library for reading and writing the DWARF debugging format")
+    (description
+     "This package provides a library for reading and writing the DWARF
+debugging format.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-gimli-0.23
   (package
+    (inherit rust-gimli-0.26)
     (name "rust-gimli")
     (version "0.23.0")
     (source
@@ -25047,13 +25080,7 @@ (define-public rust-gimli-0.23
         ("rust-indexmap" ,rust-indexmap-1)
         ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
         ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
-        ("rust-stable-deref-trait" ,rust-stable-deref-trait-1))))
-    (home-page "https://github.com/gimli-rs/gimli")
-    (synopsis "Library for reading and writing the DWARF debugging format")
-    (description
-     "This package provides a library for reading and writing the DWARF
-debugging format.")
-    (license (list license:asl2.0 license:expat))))
+        ("rust-stable-deref-trait" ,rust-stable-deref-trait-1))))))
 
 (define-public rust-gimli-0.20
   (package
-- 
2.36.1
From e9a0f08a8246f2edbc0453c721fe0f50fc16069a Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 3 Aug 2022 10:16:26 +0200
Subject: [PATCH v4 12/38] gnu: Add rust-backtrace-next.

* gnu/packages/crates-io.scm (rust-backtrace-next): New variable.

Toggle diff (45 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index fa81721060..5aa89f2df2 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -5663,6 +5663,38 @@ (define-public rust-backtrace-0.3
 trace (backtrace) at runtime in a Rust program.")
     (license (list license:asl2.0 license:expat))))
 
+;; FIXME: Currently breaks rav1e-0.5.1
+(define-public rust-backtrace-next
+  (package
+    (inherit rust-backtrace-0.3)
+    (name "rust-backtrace")
+    (version "0.3.66")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "backtrace" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "19yrfx0gprqmzphmf6qv32g93w76ny5g751ks1abdkqnsqcl7f6a"))))
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-addr2line" ,rust-addr2line-0.17)
+         ("rust-backtrace-sys" ,rust-backtrace-sys-0.1)
+         ("rust-cfg-if" ,rust-cfg-if-1)
+         ("rust-cpp-demangle" ,rust-cpp-demangle-0.3)
+         ("rust-libc" ,rust-libc-0.2)
+         ("rust-miniz-oxide" ,rust-miniz-oxide-0.5)
+         ("rust-object" ,rust-object-0.29)
+         ("rust-rustc-demangle" ,rust-rustc-demangle-0.1)
+         ("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
+         ("rust-serde" ,rust-serde-1)
+         ("rust-winapi" ,rust-winapi-0.3))
+        #:cargo-development-inputs
+           (("rust-libloading" ,rust-libloading-0.7))))))
+
 (define-public rust-backtrace-0.3.35
   (package
     (inherit rust-backtrace-0.3)
-- 
2.36.1
From 61927a441c0c41d333784911e6885859634ac1d2 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 3 Aug 2022 07:51:39 +0200
Subject: [PATCH v4 20/38] gnu: rust-doc-comment-0.3: Update to 0.3.56.

* gnu/packages/crates-io.scm (rust-doc-comment-0.3): Update to 0.3.56.

Toggle diff (24 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 910ce8d537..e8dff370a1 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -18655,7 +18655,7 @@ (define-public rust-dns-parser-0.8
 (define-public rust-doc-comment-0.3
   (package
     (name "rust-doc-comment")
-    (version "0.3.1")
+    (version "0.3.3")
     (source
       (origin
         (method url-fetch)
@@ -18663,7 +18663,7 @@ (define-public rust-doc-comment-0.3
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "15rsqxgarfpb1yim9sbp9yfgj7p2dq6v51c6bq1a62paii9ylgcj"))))
+          "043sprsf3wl926zmck1bm7gw0jq50mb76lkpk49vasfr6ax1p97y"))))
     (build-system cargo-build-system)
     (arguments '(#:skip-build? #t))
     (home-page "https://github.com/GuillaumeGomez/doc-comment")
-- 
2.36.1
From 34b0bd6ad4b7bfa9bcaac7608cdf4b346b0727e4 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 17 Nov 2021 11:10:16 +0100
Subject: [PATCH v4 05/38] gnu: Add callaudiod.

* gnu/packages/audio.scm (callaudiod): New variable.

Toggle diff (44 lines)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index aad86bac06..1b12f19dd6 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -36,6 +36,7 @@
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2021 jgart <jgart@dismail.de>
 ;;; Copyright © 2021 Aleksandr Vityazev <avityazev@posteo.org>
+;;; Copyright © 2021, 2022 Petr Hodina <phodina@protonmail.com>
 ;;; Copyright © 2022 Arjan Adriaanse <arjan@adriaan.se>
 ;;; Copyright © 2022 Juliana Sims <jtsims@protonmail.com>
 ;;;
@@ -1078,6 +1079,29 @@ (define-public calf
     ;; The plugins are released under LGPLv2.1+
     (license (list license:lgpl2.1+ license:gpl2+))))
 
+(define-public callaudiod
+  (package
+    (name "callaudiod")
+    (version "0.1.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/mobian1/callaudiod")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0h9sfimlcikaxx29z97mmm025z7m5kkw0l8hbnqsmrgrph0bspzg"))))
+    (build-system meson-build-system)
+    (native-inputs (list `(,glib "bin") pkg-config))
+    (inputs (list alsa-utils alsa-lib glib pulseaudio))
+    (synopsis "Call audio routing daemon")
+    (description
+     "This package provides a daemon for dealing with audio routing
+during phone calls.  It provides a D-Bus interface.")
+    (home-page "https://gitlab.com/mobian1/callaudiod")
+    (license license:gpl3+)))
+
 (define-public caps-plugins-lv2
   (package
     (name "caps-plugins-lv2")
-- 
2.36.1
From c3f9e2ff0f758d09bdf0b831e7f777bd276a2be8 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 3 Aug 2022 12:02:55 +0200
Subject: [PATCH v4 14/38] gnu: Add rust-once-cell-next.

* gnu/packages/crates-io.scm (rust-once-cell-next): New variable.

Toggle diff (35 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 0d5b865023..2f5472a1b2 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -39840,6 +39840,28 @@ (define-public rust-once-cell-1
 contents.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-once-cell-next
+  (package
+    (inherit rust-once-cell-1)
+    (name "rust-once-cell")
+    (version "1.13.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "once-cell" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1qfqvgnwfzzwxd13ybvplzshaqwnjnna9ghcn0zgijaq0zixp9hq"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-atomic-polyfill" ,rust-atomic-polyfill-0.1)
+        ("rust-parking-lot-core" ,rust-parking-lot-core-0.9))
+       #:cargo-development-inputs
+       (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-regex" ,rust-regex-1))))))
+
 (define-public rust-once-cell-0.1
   (package
     (inherit rust-once-cell-1)
-- 
2.36.1
From c7d9f061b6e1e050c343426499081527151f8815 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 3 Aug 2022 08:02:09 +0200
Subject: [PATCH v4 25/38] gnu: Add rust-zbus-polkit-1.

* gnu/packages/crates-io.scm (rust-zbus-polkit-1): New variable.

Toggle diff (36 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 9af5cd180e..c032ea78ec 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -72938,6 +72938,29 @@ (define-public rust-yeslogic-fontconfig-sys-3
 for locating fonts.")
     (license license:expat)))
 
+(define-public rust-zbus-polkit-1
+  (package
+    (name "rust-zbus-polkit")
+    (version "1.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "zbus_polkit" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1yzbs8sga4s3h97vb6n5nvdvlnmhws2vj46bn44hbncfm25f51mc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-enumflags2" ,rust-enumflags2-0.6)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-serde-repr" ,rust-serde-repr-0.1)
+                       ("rust-zvariant" ,rust-zvariant-2))))
+    (home-page "https://gitlab.freedesktop.org/dbus/zbus/")
+    (synopsis "PolicyKit binding")
+    (description "PolicyKit binding")
+    (license license:expat)))
+
 (define-public rust-zvariant-derive-2
   (package
     (name "rust-zvariant-derive")
-- 
2.36.1
From ac44c21d6e1ee9aab45e92bfa0b1642b960a02bd Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 3 Aug 2022 07:58:39 +0200
Subject: [PATCH v4 23/38] gnu: Add rust-zbus-macros-1.

* gnu/packages/crates-io.scm (rust-zbus-macros-1): New variable.

Toggle diff (36 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 1e17f1c0a4..6a2c82474c 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -73011,6 +73011,29 @@ (define-public rust-zbase32-0.1
     (description "This package provides an implementation of zbase32.")
     (license license:lgpl3+)))
 
+(define-public rust-zbus-macros-1
+  (package
+    (name "rust-zbus-macros")
+    (version "1.9.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "zbus_macros" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "19p0pdwdf52zkaknav0pj5qvgcf52xk8a4p3a4ymxybwhjkmjfgs"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-proc-macro-crate" ,rust-proc-macro-crate-0.1)
+                       ("rust-proc-macro2" ,rust-proc-macro2-1)
+                       ("rust-quote" ,rust-quote-1)
+                       ("rust-syn" ,rust-syn-1))))
+    (home-page "https://gitlab.freedesktop.org/dbus/zbus/")
+    (synopsis "proc-macros for zbus")
+    (description "proc-macros for zbus")
+    (license license:expat)))
+
 (define-public rust-zerocopy-0.3
   (package
     (name "rust-zerocopy")
-- 
2.36.1
From ab9e14e51400c21a6f975e78c407396dc27997d7 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 3 Aug 2022 11:21:42 +0200
Subject: [PATCH v4 19/38] gnu: Add rust-ntest-0.7.

* gnu/packages/crates-io.scm (rust-ntest-0.7): New variable.
(rust-ntest-0.3): Inherit from above.

Toggle diff (53 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index bc55ef4cde..910ce8d537 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -38364,8 +38364,32 @@ (define-public rust-ntapi-0.3
     (description "FFI bindings for Native API")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-ntest-0.7
+  (package
+    (name "rust-ntest")
+    (version "0.7.5")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ntest" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0i4xsvx52hmcnga2xbjl74hdylz4jy8bc2swcichlvw1di4lwm2w"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-ntest-proc-macro-helper" ,rust-ntest-proc-macro-helper-0.7)
+                       ("rust-ntest-test-cases" ,rust-ntest-test-cases-0.7)
+                       ("rust-ntest-timeout" ,rust-ntest-timeout-0.7))))
+    (home-page "https://github.com/becheran/ntest")
+    (synopsis "Testing framework for Rust")
+    (description "This package provides a testing framework for Rust which
+enhances the built-in library with some useful features.")
+    (license license:expat)))
+
 (define-public rust-ntest-0.3
   (package
+    (inherit rust-ntest-0.7)
     (name "rust-ntest")
     (version "0.3.3")
     (source
@@ -38385,12 +38409,7 @@ (define-public rust-ntest-0.3
        #:cargo-development-inputs
        (("rust-ntest-test-cases" ,rust-ntest-test-cases-0.3)
         ("rust-ntest-timeout" ,rust-ntest-timeout-0.3)
-        ("rust-timebomb" ,rust-timebomb-0.1))))
-    (home-page "https://github.com/becheran/ntest")
-    (synopsis "Testing framework for Rust")
-    (description "This package provides a testing framework for Rust which
-enhances the built-in library with some useful features.")
-    (license license:expat)))
+        ("rust-timebomb" ,rust-timebomb-0.1))))))
 
 (define-public rust-ntest-proc-macro-helper-0.7
   (package
-- 
2.36.1
From 5ed825d0edded016c0806eaca0576d151f853123 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 3 Aug 2022 12:02:03 +0200
Subject: [PATCH v4 24/38] gnu: rust-nix-0.22: Update to 0.22.3.

* gnu/packages/crates-io.scm (rust-nix-0.22): Update to 0.22.3.

Toggle diff (23 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 6a2c82474c..9af5cd180e 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -37535,14 +37535,14 @@ (define-public rust-nix-0.22
   (package
     (inherit rust-nix-0.23)
     (name "rust-nix")
-    (version "0.22.1")
+    (version "0.22.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nix" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0cahgzxhdwsaa8491n6cn8gadgfsxk5razyfw4xr3k34f5n5smg7"))))
+        (base32 "1bsgc8vjq07a1wg9vz819bva3dvn58an4r87h80dxrfqkqanz4g4"))))
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-- 
2.36.1
From 22964116689a050659102497700b2bda45ffccfa Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 3 Aug 2022 08:02:44 +0200
Subject: [PATCH v4 22/38] gnu: Add rust-zvariant-2.

* gnu/packages/crates-io.scm (rust-zvariant-2): New variable.

Toggle diff (40 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 8fb4c28896..1e17f1c0a4 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -72961,6 +72961,33 @@ (define-public rust-zvariant-derive-2
     (description "D-Bus & GVariant encoding & decoding")
     (license license:expat)))
 
+(define-public rust-zvariant-2
+  (package
+    (name "rust-zvariant")
+    (version "2.10.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "zvariant" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0995d59vl8409mk3qrbshqrz5d76dq52szg0x2vqji07y9app356"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-arrayvec" ,rust-arrayvec-0.5)
+                       ("rust-byteorder" ,rust-byteorder-1)
+                       ("rust-enumflags2" ,rust-enumflags2-0.6)
+                       ("rust-libc" ,rust-libc-0.2)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-serde-bytes" ,rust-serde-bytes-0.11)
+                       ("rust-static-assertions" ,rust-static-assertions-1)
+                       ("rust-zvariant-derive" ,rust-zvariant-derive-2))))
+    (home-page "https://gitlab.freedesktop.org/dbus/zbus/")
+    (synopsis "D-Bus & GVariant encoding & decoding")
+    (description "D-Bus & GVariant encoding & decoding")
+    (license license:expat)))
+
 (define-public rust-zbase32-0.1
   (package
     (name "rust-zbase32")
-- 
2.36.1
From 4d19d2617b900fb438f207fc83709631499d680d Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 3 Aug 2022 12:31:21 +0200
Subject: [PATCH v4 13/38] gnu: Add rust-parking-lot-core-0.9.

* gnu/packages/crates-io.scm (rust-parking-lot-core-0.8): New variable.

Toggle diff (91 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 1bd791fb0c..95b2b9ca8a 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1797,6 +1797,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/rust-nettle-disable-vendor.patch		 \
   %D%/packages/patches/rust-nettle-sys-disable-vendor.patch	 \
   %D%/packages/patches/rust-openssl-sys-no-vendor.patch	\
+  %D%/packages/patches/rust-parking-lot-core-0.9.patch	\
   %D%/packages/patches/rust-shell2batch-lint-fix.patch		\
   %D%/packages/patches/rust-wl-clipboard-rs-newer-wl.patch      \
   %D%/packages/patches/sbc-fix-build-non-x86.patch		\
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 5aa89f2df2..0d5b865023 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -41306,8 +41306,37 @@ (define-public rust-parking-lot-0.7
         ("rust-rand" ,rust-rand-0.4)
         ("rust-rustc-version" ,rust-rustc-version-0.2))))))
 
+(define-public rust-parking-lot-core-0.9
+  (package
+    (name "rust-parking-lot-core")
+    (version "0.9.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "parking_lot_core" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (patches (search-patches "rust-parking-lot-core-0.9.patch"))
+              (sha256
+               (base32
+                "0ab95rljb99rm51wcic16jgbajcr6lgbqkrr21w7bc2wyb5pk8h9"))))
+    (build-system cargo-build-system)
+    (arguments
+	;; TODO: Replace rust-backtrace-next when ready
+     `(#:cargo-inputs (("rust-backtrace" ,rust-backtrace-next)
+                       ("rust-cfg-if" ,rust-cfg-if-1)
+                       ("rust-libc" ,rust-libc-0.2)
+                       ("rust-petgraph" ,rust-petgraph-0.6)
+                       ("rust-redox-syscall" ,rust-redox-syscall-0.2)
+                       ("rust-smallvec" ,rust-smallvec-1)
+                       ("rust-thread-id" ,rust-thread-id-4))))
+    (home-page "https://github.com/Amanieu/parking_lot")
+    (synopsis "API for creating custom synchronization primitives")
+    (description "This package provides an advanced API for creating custom
+synchronization primitives.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-parking-lot-core-0.8
   (package
+    (inherit rust-parking-lot-core-0.9)
     (name "rust-parking-lot-core")
     (version "0.8.4")
     (source
@@ -41336,12 +41365,7 @@ (define-public rust-parking-lot-core-0.8
         ("rust-redox-syscall" ,rust-redox-syscall-0.2)
         ("rust-smallvec" ,rust-smallvec-1)
         ("rust-thread-id" ,rust-thread-id-4)
-        ("rust-winapi" ,rust-winapi-0.3))))
-    (home-page "https://github.com/Amanieu/parking_lot")
-    (synopsis "API for creating custom synchronization primitives")
-    (description "This package provides an advanced API for creating custom
-synchronization primitives.")
-    (license (list license:asl2.0 license:expat))))
+        ("rust-winapi" ,rust-winapi-0.3))))))
 
 (define-public rust-parking-lot-core-0.7
   (package
diff --git a/gnu/packages/patches/rust-parking-lot-core-0.9.patch b/gnu/packages/patches/rust-parking-lot-core-0.9.patch
new file mode 100644
index 0000000000..b7786ba546
--- /dev/null
+++ b/gnu/packages/patches/rust-parking-lot-core-0.9.patch
@@ -0,0 +1,15 @@
+--- parking_lot_core-0.9.3/Cargo.toml	2022-08-03 15:35:04.256541546 +0200
++++ parking_lot_core-0.9.3/Cargo.toml	2022-08-03 15:35:23.056614747 +0200
+@@ -57,12 +57,3 @@
+ 
+ [target."cfg(unix)".dependencies.libc]
+ version = "0.2.95"
+-
+-[target."cfg(windows)".dependencies.windows-sys]
+-version = "0.36.0"
+-features = [
+-    "Win32_Foundation",
+-    "Win32_System_LibraryLoader",
+-    "Win32_System_SystemServices",
+-    "Win32_System_WindowsProgramming",
+-]
-- 
2.36.1
From 917b0a7ac7cd430cb958b93623fe9a3d06750a22 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 5 Aug 2022 14:09:49 +0200
Subject: [PATCH v4 32/38] gnu: Add rust-xkbcommon-0.4.

* gnu/packages/crates-io.scm (rust-xkbcommon-0.4): New variable.

Toggle diff (47 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index ae6de0bf68..9439d3d845 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -87,6 +87,7 @@ (define-module (gnu packages crates-io)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
+  #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages webkit)
@@ -72744,6 +72745,32 @@ (define-public rust-xflags-0.2
      "This package provides a moderately simple command line arguments parser.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-xkbcommon-0.4
+  (package
+    (name "rust-xkbcommon")
+    (version "0.4.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "xkbcommon" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "1kr8ik92ckz12s9my66a7grip84n87xgkannpchi5hsmqw6d0bh3"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:tests? #f ;; TODO: Failing test in src/xkb/mod.rs
+        #:cargo-inputs
+        (("rust-libc" ,rust-libc-0.2)
+         ("rust-memmap" ,rust-memmap-0.7)
+         ("rust-xcb" ,rust-xcb-0.9))
+        #:cargo-development-inputs
+        (("rust-evdev" ,rust-evdev-0.11))))
+    (inputs (list libxkbcommon))
+    (home-page "https://github.com/rust-x-bindings/xkbcommon-rs")
+    (synopsis "Rust bindings and wrappers for libxkbcommon")
+    (description "Rust bindings and wrappers for libxkbcommon")
+    (license license:expat)))
+
 (define-public rust-xml-rs-0.8
   (package
     (name "rust-xml-rs")
-- 
2.36.1
From 5902507e87b0b3057b023508422e4cf6712447b9 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 3 Aug 2022 08:00:00 +0200
Subject: [PATCH v4 21/38] gnu: Add rust-zvariant-derive-2.

* gnu/packages/crates-io.scm (rust-zvariant-derive-2): New variable.

Toggle diff (36 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index e8dff370a1..8fb4c28896 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -72938,6 +72938,29 @@ (define-public rust-yeslogic-fontconfig-sys-3
 for locating fonts.")
     (license license:expat)))
 
+(define-public rust-zvariant-derive-2
+  (package
+    (name "rust-zvariant-derive")
+    (version "2.10.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "zvariant_derive" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1s9xk9c4p9vl0j2vr1abqc12mgv500sjc3fnh8ij3d1yb4i5xjp4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-proc-macro-crate" ,rust-proc-macro-crate-1)
+                       ("rust-proc-macro2" ,rust-proc-macro2-1)
+                       ("rust-quote" ,rust-quote-1)
+                       ("rust-syn" ,rust-syn-1))))
+    (home-page "https://gitlab.freedesktop.org/dbus/zbus/")
+    (synopsis "D-Bus & GVariant encoding & decoding")
+    (description "D-Bus & GVariant encoding & decoding")
+    (license license:expat)))
+
 (define-public rust-zbase32-0.1
   (package
     (name "rust-zbase32")
-- 
2.36.1
From a36e28bc94a3c92b40d8307cc73bfb36df1cc601 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 3 Aug 2022 11:24:26 +0200
Subject: [PATCH v4 18/38] gnu: Add rust-ntest-test-cases-0.7.

* gnu/packages/crates-io.scm (rust-ntest-test-cases-0.7): New variable.
(rust-ntest-test-cases-0.3): Inherit from above.

Toggle diff (51 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 4890c8b6da..bc55ef4cde 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -38413,8 +38413,31 @@ (define-public rust-ntest-proc-macro-helper-0.7
      "Provide helper functions for the procedural macros used in ntest.")
     (license license:expat)))
 
+(define-public rust-ntest-test-cases-0.7
+  (package
+    (name "rust-ntest-test-cases")
+    (version "0.7.5")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ntest_test_cases" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1ghal2rb03cnj7ciqgdq0dvifdf8qp2hnmi9z1ip1j5b02s1xa4r"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1)
+                       ("rust-quote" ,rust-quote-1)
+                       ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/becheran/ntest")
+    (synopsis "Test cases for ntest framework.")
+    (description "Test cases for ntest framework.")
+    (license license:expat)))
+
 (define-public rust-ntest-test-cases-0.3
   (package
+    (inherit rust-ntest-test-cases-0.7)
     (name "rust-ntest-test-cases")
     (version "0.3.4")
     (source
@@ -38430,11 +38453,7 @@ (define-public rust-ntest-test-cases-0.3
      `(#:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
-        ("rust-syn" ,rust-syn-1))))
-    (home-page "https://github.com/becheran/ntest")
-    (synopsis "Test cases for ntest framework")
-    (description "This package provides test cases for ntest framework.")
-    (license license:expat)))
+        ("rust-syn" ,rust-syn-1))))))
 
 (define-public rust-ntest-timeout-0.7
   (package
-- 
2.36.1
From 9dc9e5a85439dc3c38f2a473a1a9bcaaa110e4cd Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 5 Aug 2022 14:17:20 +0200
Subject: [PATCH v4 30/38] gnu: Add rust-bitvec-1.

* gnu/packages/crates-io.scm (rust-bitvec-1): New variable.
(rust-bitvec-0.22): Inherit from above.

Toggle diff (55 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index cc6d8d79e8..80be8a54e9 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -7434,8 +7434,34 @@ (define-public rust-bitstream-io-0.8
          "00a6wy54s1dmadm5xz8k2cbsd7ixvm48mlc45bk0fdy0pbra6jk1"))))
     (arguments `(#:skip-build? #t))))
 
+(define-public rust-bitvec-1
+  (package
+    (name "rust-bitvec")
+    (version "1.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "bitvec" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "173ydyj2q5vwj88k6xgjnfsshs4x9wbvjjv7sm0h36r34hn87hhv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-funty" ,rust-funty-2)
+                       ("rust-radium" ,rust-radium-0.7)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-tap" ,rust-tap-1)
+                       ("rust-wyz" ,rust-wyz-0.5))))
+    (home-page "https://bitvecto-rs.github.io/bitvec")
+    (synopsis "Manipulate memory, bit by bit")
+    (description
+     "This package provides a crate for manipulating memory, bit by bit.")
+    (license license:expat)))
+
 (define-public rust-bitvec-0.22
   (package
+    (inherit rust-bitvec-1)
     (name "rust-bitvec")
     (version "0.22.3")
     (source
@@ -7461,12 +7487,7 @@ (define-public rust-bitvec-0.22
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-serde-test" ,rust-serde-test-1)
-        ("rust-static-assertions" ,rust-static-assertions-1))))
-    (home-page "https://bitvecto-rs.github.io/bitvec")
-    (synopsis "Manipulate memory, bit by bit")
-    (description
-     "This package provides a crate for manipulating memory, bit by bit.")
-    (license license:expat)))
+        ("rust-static-assertions" ,rust-static-assertions-1))))))
 
 (define-public rust-bitvec-0.20
   (package
-- 
2.36.1
From 8d0dd4277cb2f9f701b26c22a7a6e1d66a3e3fec Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 5 Aug 2022 14:19:21 +0200
Subject: [PATCH v4 31/38] gnu: Add rust-evdev-0.11.

* gnu/packages/crates-io.scm (rust-evdev-0.11): New variable

Toggle diff (37 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 80be8a54e9..ae6de0bf68 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -21067,6 +21067,30 @@ (define-public rust-ethereum-types-serialize-0.2
     (description "This package is a Rust library of Ethereum types.")
     (license license:expat)))
 
+(define-public rust-evdev-0.11
+  (package
+    (name "rust-evdev")
+    (version "0.11.5")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "evdev" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "01qhxfr7wmdfsgs7wnbjgzfb6aldf2vnqqb4hfigsqbmq47dj16b"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-bitvec" ,rust-bitvec-1)
+                       ("rust-futures-core" ,rust-futures-core-0.3)
+                       ("rust-libc" ,rust-libc-0.2)
+                       ("rust-nix" ,rust-nix-0.23)
+                       ("rust-tokio" ,rust-tokio-1))))
+    (home-page "https://github.com/cmr/evdev")
+    (synopsis "evdev interface for Linux")
+    (description "evdev interface for Linux")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-event-listener-2
   (package
     (name "rust-event-listener")
-- 
2.36.1
From 3c577a7b4f532e3225ae772bf903f57ecf6381b5 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 5 Aug 2022 14:21:33 +0200
Subject: [PATCH v4 34/38] gnu: Add rust-clap-lex-0.2.

* gnu/packages/crates-io.scm (rust-clap-lex-0.2): New variable

Toggle diff (33 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 4c2b3ed3c2..e2cb3fb5d2 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -11392,6 +11392,26 @@ (define-public rust-clap-derive-3
 derive crate.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-clap-lex-0.2
+  (package
+    (name "rust-clap-lex")
+    (version "0.2.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "clap_lex" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1ib1a9v55ybnaws11l63az0jgz5xiy24jkdgsmyl7grcm3sz4l18"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-os-str-bytes" ,rust-os-str-bytes-6))))
+    (home-page "https://github.com/clap-rs/clap/tree/master/clap_lex")
+    (synopsis "Minimal, flexible command line parser")
+    (description "Minimal, flexible command line parser")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-clap-3
   (package
     (name "rust-clap")
-- 
2.36.1
From 6b43da6e934bc4809db776831d11d036e176cf35 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 3 Aug 2022 11:23:22 +0200
Subject: [PATCH v4 16/38] gnu: Add rust-ntest-proc-macro-helper-0.7.

* gnu/packages/crates-io.scm (rust-ntest-proc-macro-helper-0.7): New variable.

Toggle diff (34 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index e6765d870a..b1abacf533 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -38392,6 +38392,27 @@ (define-public rust-ntest-0.3
 enhances the built-in library with some useful features.")
     (license license:expat)))
 
+(define-public rust-ntest-proc-macro-helper-0.7
+  (package
+    (name "rust-ntest-proc-macro-helper")
+    (version "0.7.5")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ntest_proc_macro_helper" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0lkyfx97aynbm7cnhzyc9cr0rpq1xzng1hwmzizbf1a6855y6llg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t))
+    (home-page "https://github.com/becheran/ntest")
+    (synopsis
+     "Provide helper functions for the procedural macros used in ntest.")
+    (description
+     "Provide helper functions for the procedural macros used in ntest.")
+    (license license:expat)))
+
 (define-public rust-ntest-test-cases-0.3
   (package
     (name "rust-ntest-test-cases")
-- 
2.36.1
From 25d7928fe65cb4f8771203b4b257fe8cb11a4ab6 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 5 Aug 2022 14:20:46 +0200
Subject: [PATCH v4 33/38] gnu: Add rust-textwrap-0.15.

* gnu/packages/crates-io.scm (rust-textwrap-0.15): New variable.
(rust-textwrap-0.12): Inherit from above.

Toggle diff (63 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 9439d3d845..4c2b3ed3c2 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -63499,8 +63499,38 @@ (define-public rust-text-size-1
     (description "This package provides a newtypes for text offsets")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-textwrap-0.15
+  (package
+    (name "rust-textwrap")
+    (version "0.15.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "textwrap" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1yw513k61lfiwgqrfvsjw1a5wpvm0azhpjr2kr0jhnq9c56is55i"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-hyphenation" ,rust-hyphenation-0.8)
+                       ("rust-smawk" ,rust-smawk-0.3)
+                       ("rust-terminal-size" ,rust-terminal-size-0.1)
+                       ("rust-unicode-linebreak" ,rust-unicode-linebreak-0.1)
+                       ("rust-unicode-width" ,rust-unicode-width-0.1))))
+    (home-page
+     "https://github.com/mgeisler/textwrap")
+    (synopsis "Library for word wrapping, indenting, and dedenting strings")
+    (description
+     "Textwrap is a small library for word wrapping, indenting, and dedenting
+strings.  You can use it to format strings (such as help and error messages)
+for display in commandline applications.  It is designed to be efficient and
+handle Unicode characters correctly.")
+    (license license:expat)))
+
 (define-public rust-textwrap-0.12
   (package
+    (inherit rust-textwrap-0.15)
     (name "rust-textwrap")
     (version "0.12.1")
     (source
@@ -63518,16 +63548,7 @@ (define-public rust-textwrap-0.12
        #:cargo-inputs
        (("rust-hyphenation" ,rust-hyphenation-0.8)
         ("rust-terminal-size" ,rust-terminal-size-0.1)
-        ("rust-unicode-width" ,rust-unicode-width-0.1))))
-    (home-page
-     "https://github.com/mgeisler/textwrap")
-    (synopsis "Library for word wrapping, indenting, and dedenting strings")
-    (description
-     "Textwrap is a small library for word wrapping, indenting, and dedenting
-strings.  You can use it to format strings (such as help and error messages)
-for display in commandline applications.  It is designed to be efficient and
-handle Unicode characters correctly.")
-    (license license:expat)))
+        ("rust-unicode-width" ,rust-unicode-width-0.1))))))
 
 (define-public rust-textwrap-0.11
   (package
-- 
2.36.1
From 824c2b9b9cb155baa0a7f9c439f258d422dc29d1 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 3 Aug 2022 12:03:45 +0200
Subject: [PATCH v4 15/38] gnu: Add rust-proc-macro-crate-next.

* gnu/packages/crates-io.scm (rust-proc-macro-crate-next): New variable.

Toggle diff (35 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 2f5472a1b2..e6765d870a 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -45363,6 +45363,28 @@ (define-public rust-proc-macro-crate-1
 renamed in @file{Cargo.toml}.")
     (license (list license:asl2.0 license:expat))))
 
+ (define-public rust-proc-macro-crate-next
+   (package
+     (inherit rust-proc-macro-crate-1)
+     (name "rust-proc-macro-crate")
+     (version "1.2.1")
+     (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "proc-macro-crate" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32 "1sclzva81n2lpjyfpdpdcd03f5ys9684vqap2xipbjdp1wxzr87d"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-once-cell" ,rust-once-cell-next)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-toml" ,rust-toml-0.5))
+       #:cargo-development-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))))
+
 (define-public rust-proc-macro-crate-0.1
   (package
     (inherit rust-proc-macro-crate-1)
-- 
2.36.1
From 1fb6fca38c60bdbe20643f227004cfba78a46729 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 5 Aug 2022 14:24:00 +0200
Subject: [PATCH v4 35/38] gnu: rust-clap-derive-3: Update to 3.1.18.

* gnu/packages/crates-io.scm (rust-clap-derive-3): Update to 3.1.18.

Toggle diff (40 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index e2cb3fb5d2..a026f4419a 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -11364,7 +11364,7 @@ (define-public rust-clang-sys-0.11
 (define-public rust-clap-derive-3
   (package
     (name "rust-clap-derive")
-    (version "3.0.0-beta.2")
+    (version "3.1.18")
     (source
      (origin
        (method url-fetch)
@@ -11373,17 +11373,15 @@ (define-public rust-clap-derive-3
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "18cn82jhcha7m0nkpi1a03jx8k7aaq5kxfcxnsqpaa8ih5dp23rp"))))
+         "0g53w6qkqcc122bqh51jzfg51147il643idvq1czxkr2x5306ci5"))))
     (build-system cargo-build-system)
-    (arguments
+	(arguments
      `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-heck" ,rust-heck-0.3)
-        ("rust-proc-macro-error"
-         ,rust-proc-macro-error-1)
-        ("rust-proc-macro2" ,rust-proc-macro2-1)
-        ("rust-quote" ,rust-quote-1)
-        ("rust-syn" ,rust-syn-1))))
+       #:cargo-inputs (("rust-heck" ,rust-heck-0.4)
+                       ("rust-proc-macro-error" ,rust-proc-macro-error-1)
+                       ("rust-proc-macro2" ,rust-proc-macro2-1)
+                       ("rust-quote" ,rust-quote-1)
+                       ("rust-syn" ,rust-syn-1))))
     (home-page "https://clap.rs/")
     (synopsis
      "Parse command line argument by defining a struct, derive crate")
-- 
2.36.1
From a45b3a50831b985abaeaf5cd1678e3efe54b8442 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 3 Aug 2022 08:01:37 +0200
Subject: [PATCH v4 26/38] gnu: Add rust-zbus-1.

* gnu/packages/crates-io.scm (rust-zbus-1): New variable.

Toggle diff (51 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index c032ea78ec..e6134d10cc 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -72961,6 +72961,44 @@ (define-public rust-zbus-polkit-1
     (description "PolicyKit binding")
     (license license:expat)))
 
+(define-public rust-zbus-1
+  (package
+    (name "rust-zbus")
+    (version "1.9.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "zbus" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0jgwydwjgk16dyrzdbc1k0dnqj9kv9p3fwcv92a7l9np3hlv5glw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f ;; 12/24 tests fail
+	   #:cargo-inputs (("rust-async-io" ,rust-async-io-1)
+                       ("rust-byteorder" ,rust-byteorder-1)
+                       ("rust-derivative" ,rust-derivative-2)
+                       ("rust-enumflags2" ,rust-enumflags2-0.6)
+                       ("rust-fastrand" ,rust-fastrand-1)
+                       ("rust-futures" ,rust-futures-0.3)
+                       ("rust-nb-connect" ,rust-nb-connect-1)
+                       ("rust-nix" ,rust-nix-0.22)
+                       ("rust-once-cell" ,rust-once-cell-1)
+                       ("rust-polling" ,rust-polling-2)
+                       ("rust-scoped-tls" ,rust-scoped-tls-1)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-serde-xml-rs" ,rust-serde-xml-rs-0.4)
+                       ("rust-serde-repr" ,rust-serde-repr-0.1)
+                       ("rust-zbus-macros" ,rust-zbus-macros-1)
+                       ("rust-zvariant" ,rust-zvariant-2))
+       #:cargo-development-inputs (("rust-doc-comment" ,rust-doc-comment-0.3)
+                                   ("rust-ntest" ,rust-ntest-0.7)
+                                   ("rust-zbus-polkit" ,rust-zbus-polkit-1))))
+    (home-page "https://gitlab.freedesktop.org/dbus/zbus/")
+    (synopsis "API for D-Bus communication")
+    (description "API for D-Bus communication")
+    (license license:expat)))
+
 (define-public rust-zvariant-derive-2
   (package
     (name "rust-zvariant-derive")
-- 
2.36.1
From 2314948ddda56ad3a86f60a50c122daa4e2b81e1 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 5 Aug 2022 14:13:41 +0200
Subject: [PATCH v4 28/38] gnu: Add rust-radium-0.7.

* gnu/packages/crates-io.scm (rust-radium-0.7): New variable.
(rust-radium-0.7): Inherit from above.

Toggle diff (52 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index c0a939ce97..a810b3a24e 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -47384,8 +47384,30 @@ (define-public rust-racer-interner-0.1
 fashion.  It is mostly used in Racer.")
     (license license:expat)))
 
+(define-public rust-radium-0.7
+  (package
+    (name "rust-radium")
+    (version "0.7.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "radium" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "02cxfi3ky3c4yhyqx9axqwhyaca804ws46nn4gc1imbk94nzycyw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t))
+    (home-page "https://github.com/bitvecto-rs/radium")
+    (synopsis "Portable interfaces for maybe-atomic types")
+    (description
+     "@code{radium} provides abstractions and graceful degradation for behavior
+that must be shared-mutable, but merely may use atomic instructions to do so.")
+    (license license:expat)))
+
 (define-public rust-radium-0.6
   (package
+    (inherit rust-radium-0.7)
     (name "rust-radium")
     (version "0.6.2")
     (source
@@ -47400,13 +47422,7 @@ (define-public rust-radium-0.6
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
-       (("rust-static-assertions" ,rust-static-assertions-1))))
-    (home-page "https://github.com/bitvecto-rs/radium")
-    (synopsis "Portable interfaces for maybe-atomic types")
-    (description
-     "@code{radium} provides abstractions and graceful degradation for behavior
-that must be shared-mutable, but merely may use atomic instructions to do so.")
-    (license license:expat)))
+       (("rust-static-assertions" ,rust-static-assertions-1))))))
 
 (define-public rust-radium-0.5
   (package
-- 
2.36.1
From f7cae28ae05aab8a0fd7b8e247c56838eae84374 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Wed, 3 Aug 2022 10:15:38 +0200
Subject: [PATCH v4 11/38] gnu: Add rust-addr2line-0.17.

* gnu/packages/crates-io.scm (rust-addr2line-0.17): New variable.
(rust-addr2line-0.14): Remove variable.

Toggle diff (65 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index dc3b6566b4..fa81721060 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -1695,8 +1695,43 @@ (define-public rust-adblock-0.4
 syntax (e.g.  EasyList, EasyPrivacy) filter parsing and matching.")
     (license license:mpl2.0)))
 
+(define-public rust-addr2line-0.17
+  (package
+    (name "rust-addr2line")
+    (version "0.17.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "addr2line" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0sw16zqy6w0ar633z69m7lw6gb0k1y7xj3387a8wly43ij5div5r"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+                       ("rust-cpp-demangle" ,rust-cpp-demangle-0.3)
+                       ("rust-fallible-iterator" ,rust-fallible-iterator-0.2)
+                       ("rust-gimli" ,rust-gimli-0.26)
+                       ("rust-object" ,rust-object-0.27)
+                       ("rust-rustc-demangle" ,rust-rustc-demangle-0.1)
+                       ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
+                       ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
+                       ("rust-smallvec" ,rust-smallvec-1))
+#:cargo-development-inputs (;("rust-findshlibs" ,rust-findshlibs-0.10)
+	    ("rust-rustc-test" ,rust-rustc-test-0.3)
+	    ("rust-typed-arena" ,rust-typed-arena-2)
+	   ("rust-memmap" ,rust-memmap-0.7))))
+    (home-page "https://github.com/gimli-rs/addr2line")
+    (synopsis "Symbolication library written in Rust, using gimli")
+    (description
+     "This package provides a cross-platform symbolication library written in
+Rust, using gimli.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-addr2line-0.14
   (package
+    (inherit rust-addr2line-0.17)
     (name "rust-addr2line")
     (version "0.14.1")
     (source
@@ -1718,13 +1753,7 @@ (define-public rust-addr2line-0.14
         ("rust-rustc-demangle" ,rust-rustc-demangle-0.1)
         ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
         ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
-        ("rust-smallvec" ,rust-smallvec-1))))
-    (home-page "https://github.com/gimli-rs/addr2line")
-    (synopsis "Symbolication library written in Rust, using gimli")
-    (description
-     "This package provides a cross-platform symbolication library written in
-Rust, using gimli.")
-    (license (list license:asl2.0 license:expat))))
+        ("rust-smallvec" ,rust-smallvec-1))))))
 
 (define-public rust-addr-0.14
   (package
-- 
2.36.1
From 1c5eac5db0e8a94adf8d02feabe70f2f72803123 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 5 Aug 2022 14:11:42 +0200
Subject: [PATCH v4 27/38] gnu: Add rust-wyz-0.5.

* gnu/packages/crates-io.scm (rust-wyz-0.5): New variable.
(rust-wyz-0.5): Inherit from above.

Toggle diff (53 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index e6134d10cc..c0a939ce97 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -72349,8 +72349,32 @@ (define-public rust-wyhash-0.5
 non-cryptographic hashing algorithm and random number generator.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-wyz-0.5
+  (package
+    (name "rust-wyz")
+    (version "0.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "wyz" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "03ir858jfk3sn98v3vzh33ap8s27sfgbalrv71n069wxyaa1bcrh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-once-cell" ,rust-once-cell-1)
+                       ("rust-tap" ,rust-tap-1)
+                       ("rust-typemap" ,rust-typemap-0.3))))
+    (home-page "https://myrrlyn.net/crates/wyz")
+    (synopsis "Collection of utility functions")
+    (description
+     "This package provides a collection of utility functions.")
+    (license license:expat)))
+
 (define-public rust-wyz-0.4
   (package
+    (inherit rust-wyz-0.5)
     (name "rust-wyz")
     (version "0.4.0")
     (source
@@ -72367,12 +72391,7 @@ (define-public rust-wyz-0.4
      `(#:cargo-inputs
        (("rust-once-cell" ,rust-once-cell-1)
         ("rust-tap" ,rust-tap-1)
-        ("rust-typemap" ,rust-typemap-0.3))))
-    (home-page "https://myrrlyn.net/crates/wyz")
-    (synopsis "Collection of utility functions")
-    (description
-     "This package provides a collection of utility functions.")
-    (license license:expat)))
+        ("rust-typemap" ,rust-typemap-0.3))))))
 
 (define-public rust-wyz-0.2
   (package
-- 
2.36.1
From 7197fa3ab0ec4b0b689e56f7abf34807bb4a979f Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 5 Aug 2022 14:15:34 +0200
Subject: [PATCH v4 29/38] gnu: Add rust-funty-2.

* gnu/packages/crates-io.scm (rust-funty-2): New variable.
(rust-funty-2): Inherit from above.

Toggle diff (54 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index a810b3a24e..cc6d8d79e8 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -23323,8 +23323,31 @@ (define-public rust-fuchsia-zircon-sys-0.3
     (description "Low-level Rust bindings for the Zircon kernel.")
     (license license:bsd-3)))
 
+(define-public rust-funty-2
+  (package
+    (name "rust-funty")
+    (version "2.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "funty" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "177w048bm0046qlzvp33ag3ghqkqw4ncpzcm5lq36gxf2lla7mg6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t))
+    (home-page "https://github.com/myrrlyn/funty")
+    (synopsis "Trait generalization over the primitive types")
+    (description
+     "Prior to 1.0, Rust had traits for the numeric primitive types to permit
+code to generalize over which specific type it accepted. This was never
+stabilized, and eventually removed.  This library reïnstates these traits.")
+    (license license:expat)))
+
 (define-public rust-funty-1
   (package
+    (inherit rust-funty-2)
     (name "rust-funty")
     (version "1.2.0")
     (source
@@ -23339,14 +23362,7 @@ (define-public rust-funty-1
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
-       (("rust-static-assertions" ,rust-static-assertions-1))))
-    (home-page "https://github.com/myrrlyn/funty")
-    (synopsis "Trait generalization over the primitive types")
-    (description
-     "Prior to 1.0, Rust had traits for the numeric primitive types to permit
-code to generalize over which specific type it accepted. This was never
-stabilized, and eventually removed.  This library reïnstates these traits.")
-    (license license:expat)))
+       (("rust-static-assertions" ,rust-static-assertions-1))))))
 
 (define-public rust-funty-1.1
   (package
-- 
2.36.1
From fc2fbeba53a522ad36ff542308e77f3f06b6a84d Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Tue, 9 Aug 2022 23:36:21 +0200
Subject: [PATCH v4 38/38] ! gnu: enable features.


Toggle diff (58 lines)
diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index e392220a01..13d5d1098f 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -734,6 +734,7 @@ (define-public rust-gio-0.14
     (arguments
      `(#:skip-build?
        #t
+       #:features '("v2_58")
        #:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
         ("rust-futures-channel" ,rust-futures-channel-0.3)
@@ -954,6 +955,7 @@ (define-public rust-glib-0.14
     (arguments
      `(#:skip-build?
        #t
+       #:features '("v2_58")
        #:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
         ("rust-futures-channel" ,rust-futures-channel-0.3)
@@ -1124,6 +1126,7 @@ (define-public rust-glib-sys-0.14
     (arguments
      `(#:skip-build?
        #t
+       #:features '("v2_58")
        #:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
         ("rust-system-deps" ,rust-system-deps-3))
@@ -1269,6 +1272,7 @@ (define-public rust-gtk-0.14
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f                      ;requires running server
+       #:features '("v3_22")
        #:cargo-inputs
        (("rust-atk" ,rust-atk-0.14)
         ("rust-bitflags" ,rust-bitflags-1)
@@ -1369,6 +1373,7 @@ (define-public rust-gtk-sys-0.14
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f                      ;missing files
+       #:features '("v3_22")
        #:cargo-inputs
        (("rust-atk-sys" ,rust-atk-sys-0.14)
         ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.14)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 5d4f83ad7f..d108a1973a 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -72803,6 +72803,7 @@ (define-public rust-xkbcommon-0.4
     (build-system cargo-build-system)
     (arguments
       `(#:tests? #f ;; TODO: Failing test in src/xkb/mod.rs
+        #:features '("wayland")
         #:cargo-inputs
         (("rust-libc" ,rust-libc-0.2)
          ("rust-memmap" ,rust-memmap-0.7)
-- 
2.36.1
From e1ed7b2f59218e28aaf46bdbfe3dfc84a079c79f Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Fri, 5 Aug 2022 14:24:28 +0200
Subject: [PATCH v4 36/38] gnu: rust-clap-3: Update to 3.1.18.

* gnu/packages/crates-io.scm (rust-clap-3): Update to 3.1.18.
[arguments]: Add rust-clap-lex-0.2 to cargo-inputs and update to
rust-textwrap-0.15.

Toggle diff (68 lines)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index a026f4419a..5d4f83ad7f 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -11413,7 +11413,7 @@ (define-public rust-clap-lex-0.2
 (define-public rust-clap-3
   (package
     (name "rust-clap")
-    (version "3.0.0-beta.2")
+    (version "3.1.18")
     (source
      (origin
        (method url-fetch)
@@ -11422,27 +11422,32 @@ (define-public rust-clap-3
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0hm1kivw6190rxbfqhdr4hqwlrijvwh90i3d9dyyw0d5k0chdlab"))))
+         "02s4hk9hrmm2s1j7dkbwpyd75mfzx3p8ks2chmp4ccybv95xznyj"))))
     (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-atty" ,rust-atty-0.2)
-        ("rust-bitflags" ,rust-bitflags-1)
-        ("rust-clap-derive" ,rust-clap-derive-3)
-        ("rust-indexmap" ,rust-indexmap-1)
-        ("rust-os-str-bytes" ,rust-os-str-bytes-2)
-        ("rust-strsim" ,rust-strsim-0.10)
-        ("rust-termcolor" ,rust-termcolor-1)
-        ("rust-terminal-size" ,rust-terminal-size-0.1)
-        ("rust-textwrap" ,rust-textwrap-0.12)
-        ("rust-unicode-width" ,rust-unicode-width-0.1)
-        ("rust-vec-map" ,rust-vec-map-0.8)
-        ("rust-yaml-rust" ,rust-yaml-rust-0.4))
-       #:cargo-development-inputs
-       (("rust-criterion" ,rust-criterion-0.3)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-regex" ,rust-regex-1)
-        ("rust-version-sync" ,rust-version-sync-0.8))))
+	(arguments
+     `(#:cargo-inputs (("rust-atty" ,rust-atty-0.2)
+                       ("rust-backtrace" ,rust-backtrace-0.3)
+                       ("rust-bitflags" ,rust-bitflags-1)
+                       ("rust-clap-derive" ,rust-clap-derive-3)
+                       ("rust-clap-lex" ,rust-clap-lex-0.2)
+                       ("rust-indexmap" ,rust-indexmap-1)
+                       ("rust-lazy-static" ,rust-lazy-static-1)
+                       ("rust-regex" ,rust-regex-1)
+                       ("rust-strsim" ,rust-strsim-0.10)
+                       ("rust-termcolor" ,rust-termcolor-1)
+                       ("rust-terminal-size" ,rust-terminal-size-0.1)
+                       ("rust-textwrap" ,rust-textwrap-0.15)
+                       ("rust-unicase" ,rust-unicase-2)
+                       ("rust-yaml-rust" ,rust-yaml-rust-0.4))
+       #:cargo-development-inputs (("rust-criterion" ,rust-criterion-0.3)
+                                   ("rust-humantime" ,rust-humantime-2)
+                                   ("rust-lazy-static" ,rust-lazy-static-1)
+                                   ("rust-regex" ,rust-regex-1)
+                                   ("rust-rustversion" ,rust-rustversion-1)
+                                   ("rust-shlex" ,rust-shlex-1)
+                                   ("rust-snapbox" ,rust-snapbox-0.2)
+                                   ("rust-trybuild" ,rust-trybuild-1)
+                                   ("rust-trycmd" ,rust-trycmd-0.13))))
     (home-page "https://clap.rs/")
     (synopsis "Command Line Argument Parser")
     (description
-- 
2.36.1
From 14d3472eee34b880825447e1a7c9d7f216287880 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Mon, 27 Dec 2021 20:23:25 +0100
Subject: [PATCH v4 37/38] gnu: Add squeekboard.

* gnu/packages/gnome.scm (squeekboard): New variable.

Toggle diff (78 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 7f7bf28bfb..5b2f26ad12 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -570,6 +570,71 @@ (define-public seed
     (home-page "https://wiki.gnome.org/Projects/Seed")
     (license license:lgpl2.0+)))
 
+(define-public squeekboard
+  (package
+    (name "squeekboard")
+    (version "1.19.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.gnome.org/World/Phosh/squeekboard")
+                    (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "01fxcg7c7cr2xbywn1yhppqx9q8gy5yafl7gnfd3bmnl9z5smq8m"))))
+    (build-system cargo-build-system)
+    (arguments
+     (list #:modules '((ice-9 match)
+                       (ice-9 rdelim)
+                       (guix build cargo-build-system)
+                       (guix build utils))
+           #:cargo-inputs `(("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
+                            ("rust-bitflags" ,rust-bitflags-1.2)
+                            ("rust-gtk-sys" ,rust-gtk-sys-0.14)
+                            ("rust-gtk" ,rust-gtk-0.14)
+                            ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.14)
+                            ("rust-cairo-rs" ,rust-cairo-rs-0.14)
+                            ("rust-gdk" ,rust-gdk-0.14)
+                            ("rust-gio-sys" ,rust-gio-sys-0.14)
+                            ("rust-gio" ,rust-gio-0.14)
+                            ("rust-clap" ,rust-clap-3)
+                            ("rust-maplit" ,rust-maplit-1)
+                            ("rust-serde" ,rust-serde-1)
+                            ("rust-serde-yaml" ,rust-serde-yaml-0.8)
+                            ("rust-xkbcommon" ,rust-xkbcommon-0.4)
+                            ("rust-zbus" ,rust-zbus-1))
+           #:features `(list "glib_v0_14")
+           #:phases #~(modify-phases %standard-phases
+                        (add-after 'unpack 'create-cargo-toml
+                          (lambda* _
+                            (let* ((cargo-in (call-with-input-file "Cargo.toml.in"
+                                               read-string))
+                                   (cargo-dep (call-with-input-file "Cargo.deps.newer"
+                                                read-string)))
+                              (rename-file "data/style-Adwaita:dark.css"
+                                           "data/style-Adwaita.dark.css")
+                              (with-output-to-file "Cargo.toml"
+                                (lambda ()
+                                  (display (string-append cargo-in cargo-dep))))
+                              (substitute* "Cargo.toml"
+                                (("@path@/")
+                                 ""))
+                              (chmod "Cargo.toml" 365)))))))
+    (native-inputs (list python wayland-protocols pkg-config))
+    (inputs (list atk
+                  gtk+
+                  libxml2
+                  libxkbcommon
+                  feedbackd
+                  glib
+                  dbus
+                  wayland))
+    (home-page "https://gitlab.gnome.org/World/Phosh/squeekboard")
+    (synopsis "On-screen-keyboard input method for Wayland")
+    (description "This package provides an on-screen-keyboard input
+	method for Wayland.")
+    (license license:gpl3+)))
+
 (define-public libdmapsharing
   (package
     (name "libdmapsharing")
-- 
2.36.1
?