Subject: [PATCH v2 01/25] gnu: rust-structopt-derive-0.4: Update to 0.4.18.

From: phodina <[email-masked]>
Date: Sun, 24 Apr 2022 12:55:57 +0000

Hi,

here are patches that almost build alacritty. In alacritty package there is still phase (add-absolute-library-references) which fails.

There are patches for Cargo.toml to remove support for Android, IOS and Windows.

The downside of replacing rust-wayland-.*-0.28 with 0.29 is that there are some other packages that need to be updated or fix requirements in Cargo.toml.

I'll check what which regular inputs (or propagated-inputs maybe) might suffice instead of cargo-inputs.

Could someone please check what's wrong with the failing phase in the meantime?

----
Petr

From c82b9b8ae4b92121639151a009dcf9a7f357c64a Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sat, 23 Apr 2022 21:04:58 +0200
Subject: [PATCH v2 01/25] gnu: rust-structopt-derive-0.4: Update to 0.4.18.

* gnu/packages/crates-io.scm (rust-structopt-derive-0.4): Update to 0.4.18.

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index bebc1fce8d..4b7f05f91d 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -59144,7 +59144,7 @@ (define-public rust-structopt-0.2
 (define-public rust-structopt-derive-0.4
   (package
    (name "rust-structopt-derive")
-   (version "0.4.14")
+   (version "0.4.18")
    (source
     (origin
      (method url-fetch)
@@ -59153,7 +59153,7 @@ (define-public rust-structopt-derive-0.4
       (string-append name "-" version ".tar.gz"))
      (sha256
       (base32
-       "143gjwvz3s86hwp070km83y25n8kqp5f01kb1dr19f4ilkywvaav"))))
+       "1q5gcigmvw0cinjxzpyrkflliq5r1ivljmrvfrl3phcwgwraxdfw"))))
    (build-system cargo-build-system)
    (arguments
     `(#:skip-build? #t

base-commit: 59b91fdbcd7e1a88d1d54d392ce5d5fddd9d96d1
prerequisite-patch-id: da2145422d4d1f8bf2657acf5d9a7c13276f8c49
prerequisite-patch-id: 53bbcbff793ef539437881d896c0310891a436de
prerequisite-patch-id: a8095f7fa7171a2caf5df01779513c8b024e5858
prerequisite-patch-id: 75fe4b597b1bcdae76f9444e98f5aedad71872f1
prerequisite-patch-id: 6c90cee23643ad8a51dfd363d4ac45f43eaa3687
prerequisite-patch-id: 2fcd3f6658f66f7fb031a3c238ea918ed98c7878
-- 
2.35.1

From 8ef0904d87c3f43015ad9654910dafcb3bf8cbd8 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 24 Apr 2022 01:27:08 +0200
Subject: [PATCH v2 02/25] gnu: rust-structopt-0.3: Update to 0.3.26.

* gnu/packages/crates-io.scm (rust-structopt): Update to 0.3.26.
  [arguments]: Add rust-paw-1 to cargo-inputs. Add cargo development inputs.
  Add phases to fix rust-clap-2 version and remove lints feature.

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 4b7f05f91d..25292d54a6 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -59093,7 +59093,7 @@ (define-public rust-strsim-0.5
 (define-public rust-structopt-0.3
   (package
     (name "rust-structopt")
-    (version "0.3.21")
+    (version "0.3.26")
     (source
      (origin
        (method url-fetch)
@@ -59102,14 +59102,27 @@ (define-public rust-structopt-0.3
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "136j0lvjmpv5syi751vxg8vb30gfyv4k81x8d18kxrj6xvbsqxsj"))))
+         "043sg3qxllann6q9i71d05qp3q13scmcvhxhd950ka2v8ij5qsqc"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-structopt-derive" ,rust-structopt-derive-0.4)
         ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-clap" ,rust-clap-2))))
+        ("rust-paw" ,rust-paw-1)
+        ("rust-clap" ,rust-clap-2))
+       #:cargo-development-inputs
+       (("rust-strum" ,rust-strum-0.21)
+        ("rust-trybuild" ,rust-trybuild-1)
+        ("rust-rustversion" ,rust-rustversion-1))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'fixup-cargo-toml
+           (lambda _
+             (substitute* "Cargo.toml"
+               ;; feature does not exist
+               (("lints.*") "")
+               (("2.33") ,(package-version rust-clap-2))))))))
     (home-page "https://github.com/TeXitoi/structopt")
     (synopsis "Parse command line argument by defining a struct")
     (description
-- 
2.35.1

From e1dbe1ade18fac3cecaab52a11432b56c73f7520 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 24 Apr 2022 01:44:27 +0200
Subject: [PATCH v2 03/25] gnu: Add rust-calloop-0.9.

* gnu/packages/crates-io.scm (rust-calloop-0.9): New variable.
  (rust-calloop-0.4): Inherit from above.
  (rust-calloop-0.6): Remove variable.

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 25292d54a6..a756da0b2c 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -9434,23 +9434,25 @@ (define-public rust-calamine-0.16
         ("rust-serde" ,rust-serde-1)
         ("rust-zip" ,rust-zip-0.5))))))
 
-(define-public rust-calloop-0.6
+(define-public rust-calloop-0.9
   (package
     (name "rust-calloop")
-    (version "0.6.5")
+    (version "0.9.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "calloop" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0z3jlsv3g28097dhsmi2l8nzkd3p937jhb4pg52njhb0wxkn20qb"))))
+        (base32 "10mbcsd7fj3cg0a463h3003wycv955cnj4pm2gla2sp5xxhyqbmz"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-log" ,rust-log-0.4)
-        ("rust-nix" ,rust-nix-0.18))))
+       (("rust-futures-io" ,rust-futures-io-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-nix" ,rust-nix-0.22))))
     (home-page "https://github.com/Smithay/calloop")
     (synopsis "Callback-based event loop")
     (description "This package provides a callback-based event loop.")
@@ -9458,7 +9460,7 @@ (define-public rust-calloop-0.6
 
 (define-public rust-calloop-0.4
   (package
-    (inherit rust-calloop-0.6)
+    (inherit rust-calloop-0.9)
     (name "rust-calloop")
     (version "0.4.4")
     (source
-- 
2.35.1

From 674879aca7722cbb557e0d4b2dea94170d44dcfb Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 24 Apr 2022 06:59:56 +0200
Subject: [PATCH v2 05/25] gnu: Add rust-num-enum-derive-0.5.

* gnu/packages/crates-io.scm (rust-num-enum-derive-0.5): New variable.
  (rust-num-enum-derive-0.4): Remove variable.

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index a756da0b2c..5f7de601b9 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -38315,17 +38315,17 @@ (define-public rust-num-enum-0.4
 primitives and enums easier.")
     (license license:bsd-3)))
 
-(define-public rust-num-enum-derive-0.4
+(define-public rust-num-enum-derive-0.5
   (package
     (name "rust-num-enum-derive")
-    (version "0.4.3")
+    (version "0.5.7")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "num_enum_derive" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "17fvb7xpxq2dsqp5nsz98w1qhkk3gnc56xis53009vnzvlys79gz"))))
+        (base32 "1kj6b8f2fx8prlcl6y1k97668s5aiia4f9gjlk0nmpak3rj9h11v"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f                      ;FIXME: some doc tests fail
@@ -38333,7 +38333,9 @@ (define-public rust-num-enum-derive-0.4
        (("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))))
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-proc-macro-crate" ,rust-proc-macro-crate-1))))
     (home-page "https://github.com/illicitonion/num_enum")
     (synopsis "Procedural macros to ease operation between primitives and enums")
     (description
-- 
2.35.1

From 3abc13cd811bdc9eebed604f1ebdabf81e83ba92 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 24 Apr 2022 08:39:19 +0200
Subject: [PATCH v2 18/25] gnu: Add rust-console-log-0.2.

* gnu/packages/crates-io.scm (rust-console-log-0.2): New variable.
  (rust-console-log-0.1): Inherit from above.

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 7984daf84f..a2aef256c2 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -12726,8 +12726,33 @@ (define-public rust-console-error-panic-hook-0.1
 that logs panics to @code{console.error}.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-console-log-0.2
+  (package
+    (name "rust-console-log")
+    (version "0.2.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "console-log" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "150li8pznpfpn4q0f7g9jwq2hnd5wik0w8378zaa1wffc5ckf6jh"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:cargo-inputs
+        (("rust-log" ,rust-log-0.4)
+         ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
+         ("rust-web-sys" ,rust-web-sys-0.3))))
+    (home-page "https://github.com/iamcodemaker/console_log")
+    (synopsis "Route Rust log messages to the browser's console")
+    (description
+     "This package provides a logging facility that routes Rust log messages to
+the browser's console.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-console-log-0.1
   (package
+    (inherit rust-console-log-0.2)
     (name "rust-console-log")
     (version "0.1.2")
     (source
@@ -12743,13 +12768,7 @@ (define-public rust-console-log-0.1
     (arguments
      `(#:cargo-inputs
        (("rust-log" ,rust-log-0.4)
-        ("rust-web-sys" ,rust-web-sys-0.3))))
-    (home-page "https://github.com/iamcodemaker/console_log")
-    (synopsis "Route Rust log messages to the browser's console")
-    (description
-     "This package provides a logging facility that routes Rust log messages to
-the browser's console.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-web-sys" ,rust-web-sys-0.3))))))
 
 (define-public rust-const-fn-0.4
   (package
-- 
2.35.1

From b5d55a1dae97369211853fa66deb6c12f6780c40 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 24 Apr 2022 13:29:36 +0200
Subject: [PATCH v2 21/25] gnu: rust-glutin-egl-sys-0.1: Update to 0.1.5.

* gnu/packages/crates-graphics.scm (rust-glutin-egl-sys-0.1): Update to
  0.1.5.

diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm
index cc5df11d70..e22a16f184 100644
--- a/gnu/packages/crates-graphics.scm
+++ b/gnu/packages/crates-graphics.scm
@@ -1080,7 +1080,7 @@ (define-public rust-glutin-0.21
 (define-public rust-glutin-egl-sys-0.1
   (package
     (name "rust-glutin-egl-sys")
-    (version "0.1.4")
+    (version "0.1.5")
     (source
      (origin
        (method url-fetch)
@@ -1089,12 +1089,12 @@ (define-public rust-glutin-egl-sys-0.1
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0k1x1frdp4wp47qkai8zzmgqxzpfcn7780m29qgd92lbnbrxwbkp"))))
+         "04f2ci9kb8q4dv4kviigvgfy54lr4jmbnmjsvi50qj13anjnmfra"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-winapi" ,rust-winapi-0.3)
-        ("rust-gl-generator" ,rust-gl-generator-0.13))))
+        ("rust-gl-generator" ,rust-gl-generator-0.14))))
     (home-page "https://github.com/rust-windowing/glutin")
     (synopsis "Egl bindings for glutin")
     (description "The egl bindings for glutin.")
-- 
2.35.1

From cd3bfcc799453174fbbcf894553762d74b1aa127 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 24 Apr 2022 08:56:06 +0200
Subject: [PATCH v2 19/25] gnu: Add rust-winit-0.26.

* gnu/packages/crates-graphics.scm (rust-winit-0.26): New variable.
  [description]: Add double space after period.
  (rust-winit-0.20): Inherit from above.
  (rust-winit-0.24): Remove variable.
*  gnu/local.mk: Add patch.
*  gnu/packages/patches/rust-winit-remove-windows-and-ios.patch: New file.

diff --git a/gnu/local.mk b/gnu/local.mk
index 9bad87710c..7b5c9820bb 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1781,6 +1781,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/rust-nettle-sys-disable-vendor.patch	 \
   %D%/packages/patches/rust-openssl-sys-no-vendor.patch	\
   %D%/packages/patches/rust-shell2batch-lint-fix.patch		\
+  %D%/packages/patches/rust-winit-remove-windows-and-ios.patch \
   %D%/packages/patches/rust-wl-clipboard-rs-newer-wl.patch      \
   %D%/packages/patches/sbc-fix-build-non-x86.patch		\
   %D%/packages/patches/sbcl-aserve-add-HTML-5-elements.patch	\
diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm
index c8d0b56612..9c31b0d415 100644
--- a/gnu/packages/crates-graphics.scm
+++ b/gnu/packages/crates-graphics.scm
@@ -2925,17 +2925,18 @@ (define-public rust-wayland-sys-0.21
         (base32
          "0a0ndgkg98pvmkv44yya4f7mxzjaxylknqh64bpa05w0azyv02jj"))))))
 
-(define-public rust-winit-0.24
+(define-public rust-winit-0.26
   (package
     (name "rust-winit")
-    (version "0.24.0")
+    (version "0.26.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "winit" version))
        (file-name (string-append name "-" version ".tar.gz"))
+       (patches (search-patches "rust-winit-remove-windows-and-ios.patch"))
        (sha256
-        (base32 "15zmpx5ip6ziqhds7md1s0ri0blhxfa8fg1ylg84pf0frrpxlkns"))))
+        (base32 "0fp7cdh7llbqmm6ga8f6bzk9785jmkbyy1w631hr9faq3n9wqhwv"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -2950,28 +2951,36 @@ (define-public rust-winit-0.24
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-log" ,rust-log-0.4)
-        ("rust-mio" ,rust-mio-0.6)
+        ("rust-mint" ,rust-mint-0.5)
+        ("rust-mio" ,rust-mio-0.8)
         ("rust-mio-extras" ,rust-mio-extras-2)
-        ("rust-ndk" ,rust-ndk-0.2)
-        ("rust-ndk-glue" ,rust-ndk-glue-0.2)
-        ("rust-ndk-sys" ,rust-ndk-sys-0.2)
         ("rust-objc" ,rust-objc-0.2)
         ("rust-parking-lot" ,rust-parking-lot-0.11)
         ("rust-percent-encoding" ,rust-percent-encoding-2)
-        ("rust-raw-window-handle" ,rust-raw-window-handle-0.3)
+        ("rust-raw-window-handle" ,rust-raw-window-handle-0.4)
         ("rust-serde" ,rust-serde-1)
-        ("rust-smithay-client-toolkit" ,rust-smithay-client-toolkit-0.12)
+        ("rust-smithay-client-toolkit" ,rust-smithay-client-toolkit-0.15)
         ("rust-stdweb" ,rust-stdweb-0.4)
         ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
-        ("rust-web-sys" ,rust-web-sys-0.3)
         ("rust-winapi" ,rust-winapi-0.3)
-        ("rust-x11-dl" ,rust-x11-dl-2))))
+        ("rust-x11-dl" ,rust-x11-dl-2))
+       #:cargo-development-inputs
+       (("rust-console-log" ,rust-console-log-0.2)
+        ("rust-image" ,rust-image-0.23)
+        ("rust-simple-logger" ,rust-simple-logger-1))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-version-requirements
+           (lambda _
+             ;; Remove windows and ios, the patch applies to Cargo.toml.orig
+             (delete-file "Cargo.toml")
+             (rename-file "Cargo.toml.orig" "Cargo.toml"))))))
     (inputs
-     (list rust-wayland-client-0.28))
+     (list rust-wayland-client-0.29 rust-wayland-protocols-0.29))
     (home-page "https://github.com/rust-windowing/winit")
     (synopsis "Window creation library")
     (description
-     "Winit is a window creation and management library. It can create
+     "Winit is a window creation and management library.  It can create
 windows and lets you handle events (for example: the window being
 resized, a key being pressed, a mouse movement, etc.) produced by
 window.
@@ -2983,7 +2992,7 @@ (define-public rust-winit-0.24
 
 (define-public rust-winit-0.20
   (package
-    (inherit rust-winit-0.24)
+    (inherit rust-winit-0.26)
     (name "rust-winit")
     (version "0.20.0-alpha6")
     (source
diff --git a/gnu/packages/patches/rust-winit-remove-windows-and-ios.patch b/gnu/packages/patches/rust-winit-remove-windows-and-ios.patch
new file mode 100644
index 0000000000..b04b45e2c4
--- /dev/null
+++ b/gnu/packages/patches/rust-winit-remove-windows-and-ios.patch
@@ -0,0 +1,60 @@
+This patch is tailor to GNU Guix and removes crates for Windows and IOS
+since there is currently no support.
+--- winit-0.26.1/Cargo.toml.orig	1973-11-29 22:33:09.000000000 +0100
++++ winit-0.26.1/Cargo.toml.orig	2022-04-24 08:46:19.456166934 +0200
+@@ -35,55 +35,6 @@
+ image = "0.23.12"
+ simple_logger = "1.9"
+ 
+-[target.'cfg(target_os = "android")'.dependencies]
+-ndk = "0.5"
+-ndk-sys = "0.2.0"
+-ndk-glue = "0.5"
+-
+-[target.'cfg(any(target_os = "ios", target_os = "macos"))'.dependencies]
+-objc = "0.2.7"
+-
+-[target.'cfg(target_os = "macos")'.dependencies]
+-cocoa = "0.24"
+-core-foundation = "0.9"
+-core-graphics = "0.22"
+-dispatch = "0.2.0"
+-
+-[target.'cfg(target_os = "macos")'.dependencies.core-video-sys]
+-version = "0.1.4"
+-default_features = false
+-features = ["display_link"]
+-
+-[target.'cfg(target_os = "windows")'.dependencies]
+-parking_lot = "0.11"
+-
+-[target.'cfg(target_os = "windows")'.dependencies.winapi]
+-version = "0.3.9"
+-features = [
+-    "combaseapi",
+-    "commctrl",
+-    "dwmapi",
+-    "errhandlingapi",
+-    "imm",
+-    "hidusage",
+-    "libloaderapi",
+-    "objbase",
+-    "ole2",
+-    "processthreadsapi",
+-    "shellapi",
+-    "shellscalingapi",
+-    "shobjidl_core",
+-    "unknwnbase",
+-    "winbase",
+-    "windowsx",
+-    "winerror",
+-    "wingdi",
+-    "winnt",
+-    "winuser",
+-    "mmsystem",
+-    "timeapi"
+-]
+-
+ [target.'cfg(any(target_os = "linux", target_os = "dragonfly", target_os = "freebsd", target_os = "openbsd", target_os = "netbsd"))'.dependencies]
+ wayland-client = { version = "0.29", default_features = false,  features = ["use_system_lib"], optional = true }
+ wayland-protocols = { version = "0.29", features = [ "staging_protocols"], optional = true }
-- 
2.35.1

From ebae145162cd5d082cfe2d55c8bbdd14a902a6b6 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 24 Apr 2022 07:18:03 +0200
Subject: [PATCH v2 06/25] gnu: Add rust-num-enum-0.5.

* gnu/packages/crates-io.scm (rust-num-enum-0.5): New variable.
  (rust-num-enum-0.4): Remove variable.

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 5f7de601b9..b9175b7c98 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -38290,24 +38290,28 @@ (define-public rust-num-derive-0.2
     (description "Numeric syntax extensions in Rust.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-num-enum-0.4
+(define-public rust-num-enum-0.5
   (package
     (name "rust-num-enum")
-    (version "0.4.3")
+    (version "0.5.7")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "num_enum" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1r1nisdzm9m7xm0389nwyi85jhx1bnh5pwllai44ngbgy1ymlmna"))))
+        (base32 "1j8rq7i4xnbzy72z82k41469xlj1bmn4ixagd9wlbvv2ark9alyg"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #false                  ;missing files
        #:cargo-inputs
-       (("rust-derivative" ,rust-derivative-2)
-        ("rust-num-enum" ,rust-num-enum-0.4)
-        ("rust-num-enum-derive" ,rust-num-enum-derive-0.4))))
+       (("rust-num-enum-derive" ,rust-num-enum-derive-0.5))
+       #:cargo-development-inputs
+       (("rust-rustversion" ,rust-rustversion-1)
+        ("rust-trybuild" ,rust-trybuild-1)
+        ("rust-walkdir" ,rust-walkdir-2)
+        ("rust-proc-macro-crate" ,rust-proc-macro-crate-1)
+        ("rust-anyhow" ,rust-anyhow-1))))
     (home-page "https://github.com/illicitonion/num_enum")
     (synopsis "Macros easing inter-operation between primitives and enums")
     (description
-- 
2.35.1

From f5aaa824b22193115ffd77196df8cbc7ef2be370 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 24 Apr 2022 07:46:30 +0200
Subject: [PATCH v2 11/25] gnu: Add rust-wayland-commons-0.29.

* gnu/packages/crates-graphics.scm (rust-wayland-commons-0.29): New variable.
  (rust-wayland-commons-0.29): Inherit from above.
  (rust-wayland-commons-0.28): Remove variable.

diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm
index 414245f7a7..06851ceee6 100644
--- a/gnu/packages/crates-graphics.scm
+++ b/gnu/packages/crates-graphics.scm
@@ -2488,26 +2488,26 @@ (define-public rust-wayland-client-0.21
        (("rust-byteorder" ,rust-byteorder-1)
         ("rust-tempfile" ,rust-tempfile-3))))))
 
-(define-public rust-wayland-commons-0.28
+(define-public rust-wayland-commons-0.29
   (package
     (name "rust-wayland-commons")
-    (version "0.28.3")
+    (version "0.29.4")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "wayland-commons" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0mid1sgy3bmiywnrhsr31b8w6zvk1ll2ci2as15ddv8pczvm0128"))))
+        (base32 "0gnk4a771i3g1k4fbzx54xnganpc9j68jrx8xj839hfp83iybxll"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-nix" ,rust-nix-0.18)
+       (("rust-nix" ,rust-nix-0.22)
         ("rust-once-cell" ,rust-once-cell-1)
         ("rust-smallvec" ,rust-smallvec-1))))
     (inputs
-     (list rust-nix-0.18 rust-once-cell-1 rust-smallvec-1
-           rust-wayland-sys-0.28))
+     (list rust-nix-0.22 rust-once-cell-1 rust-smallvec-1
+           rust-wayland-sys-0.29))
     (home-page "https://github.com/smithay/wayland-rs")
     (synopsis "Types and structures used by wayland-client and wayland-server")
     (description
@@ -2517,7 +2517,7 @@ (define-public rust-wayland-commons-0.28
 
 (define-public rust-wayland-commons-0.23
   (package
-    (inherit rust-wayland-commons-0.28)
+    (inherit rust-wayland-commons-0.29)
     (name "rust-wayland-commons")
     (version "0.23.6")
     (source
-- 
2.35.1

From f7a781d0e8bd591a4efad3dcca965a7ac5d8da3e Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 24 Apr 2022 08:21:59 +0200
Subject: [PATCH v2 15/25] gnu: Add rust-wayland-protocols-0.29.

* gnu/packages/crates-graphics.scm (rust-wayland-protocols-0.29): New variable.
  (rust-wayland-protocols-0.23): Inherit from above.
  (rust-wayland-protocols-0.28): Remove variable.
* gnu/packages/crates-io.scm: Update comment.

diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm
index f2eaedf624..8fdd64bb1a 100644
--- a/gnu/packages/crates-graphics.scm
+++ b/gnu/packages/crates-graphics.scm
@@ -2608,25 +2608,30 @@ (define-public rust-wayland-egl-0.28
 initializing an OpenGL or Vulkan context.")
     (license license:expat)))
 
-(define-public rust-wayland-protocols-0.28
+(define-public rust-wayland-protocols-0.29
   (package
     (name "rust-wayland-protocols")
-    (version "0.28.3")
+    (version "0.29.4")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "wayland-protocols" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0c0sw13qssrvf3jgygwqpiimpaagz3haxn9jridd4k85sfs856ii"))))
+        (base32 "0hap8vky2fwsq05c98c8xs00gb9m5kxp8kq3zr0jwh036gi7l530"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1))))
+       (("rust-bitflags" ,rust-bitflags-1))
+       #:cargo-development-inputs
+       (("rust-autocfg" ,rust-autocfg-1)
+        ("rust-cfg-if" ,rust-cfg-if-1))))
     (inputs
-     (list rust-bitflags-1 rust-wayland-client-0.28
-           rust-wayland-commons-0.28 rust-wayland-scanner-0.28
-           rust-wayland-server-0.28))
+     (list rust-bitflags-1.2
+           rust-wayland-client-0.29
+           rust-wayland-commons-0.29
+           rust-wayland-scanner-0.29
+           rust-wayland-server-0.29))
     (home-page "https://github.com/smithay/wayland-rs")
     (synopsis "Generated API for the officials Wayland protocol extensions")
     (description
@@ -2636,7 +2641,7 @@ (define-public rust-wayland-protocols-0.28
 
 (define-public rust-wayland-protocols-0.23
   (package
-    (inherit rust-wayland-protocols-0.28)
+    (inherit rust-wayland-protocols-0.29)
     (name "rust-wayland-protocols")
     (version "0.23.6")
     (source
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 957f30329f..7984daf84f 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -7128,9 +7128,10 @@ (define-public rust-bitflags-1
     (license (list license:asl2.0
                    license:expat))))
 
-;; XXX: The package below is meant to fix rust-nix-0.22, which has the
-;; following requirements for bitflags version: ">=1.1.0 <1.3.0", and every
-;; package using the latter as a dependency (e.g., nushell 0.43).
+;; XXX: The package below is meant to fix rust-nix-0.22 and
+;; rust-wayland-protocols, which has the  following requirements for bitflags
+;; version: ">=1.1.0 <1.3.0", and every package using the latter as a dependency
+;; (e.g., nushell 0.43).
 (define-public rust-bitflags-1.2
   (package
     (inherit rust-bitflags-1)
-- 
2.35.1

From 04f6a1c7a4bbc95b729c49238d7378d0e1128faf Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 24 Apr 2022 07:24:43 +0200
Subject: [PATCH v2 07/25] gnu: rust-mint-0.5: Update to 0.5.9.

* gnu/packages/crates-io.scm (rust-mint-0.5): Update to 0.5.9.
  [arguments]: Add cargo-development-inputs.

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index b9175b7c98..0bfa961b81 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -34821,7 +34821,7 @@ (define-public rust-miniz-sys-0.1
 (define-public rust-mint-0.5
   (package
     (name "rust-mint")
-    (version "0.5.4")
+    (version "0.5.9")
     (source
      (origin
        (method url-fetch)
@@ -34830,8 +34830,11 @@ (define-public rust-mint-0.5
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0c4190gr348fkfijij7vm19iagwl36mssj1irc9f6m448hbhgn68"))))
+         "1zw5glv8z2d99c82jy2za97hh9p6377xmf4rbwz7jynsdfxfngg5"))))
     (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs (("rust-serde" ,rust-serde-1))))
     (home-page "https://github.com/kvark/mint")
     (synopsis "Math interoperability standard types")
     (description
-- 
2.35.1

From 5b06a5d931fc6e484b12f22f57b3f3170be5e761 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 24 Apr 2022 11:12:25 +0200
Subject: [PATCH v2 22/25] gnu: Add rust-glutin-0.28.

* gnu/packages/crates-graphics.scm (rust-glutin-0.28): New variable.
  [home-page]: Update the URL.
  (rust-glutin-0.22): Inherit from above.
* gnu/local.mk: Add patch.
* gnu/packages/patches/rust-glutin-remove-windows-ios.patch: New file.

diff --git a/gnu/local.mk b/gnu/local.mk
index 7b5c9820bb..c8efbe4516 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1774,6 +1774,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/rustc-1.39.0-src.patch			\
   %D%/packages/patches/rust-adblock-ignore-live-tests.patch		\
   %D%/packages/patches/i3status-rust-enable-unstable-features.patch	\
+  %D%/packages/patches/rust-glutin-remove-windows-ios.patch \
   %D%/packages/patches/rust-ndarray-remove-blas-src-dep.patch	\
   %D%/packages/patches/rust-ndarray-0.13-remove-blas-src.patch	\
   %D%/packages/patches/rust-ndarray-0.14-remove-blas-src.patch	\
diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm
index e22a16f184..d5a698fae1 100644
--- a/gnu/packages/crates-graphics.scm
+++ b/gnu/packages/crates-graphics.scm
@@ -967,48 +967,50 @@ (define-public rust-gleam-0.6
      "Generated OpenGL bindings and wrapper for Servo.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-glutin-0.26
+(define-public rust-glutin-0.28
   (package
     (name "rust-glutin")
-    (version "0.26.0")
+    (version "0.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "glutin" version))
        (file-name (string-append name "-" version ".tar.gz"))
+       (patches (search-patches "rust-glutin-remove-windows-ios.patch"))
        (sha256
-        (base32 "18szbh4dixcr7pmymvbrpv21hv0wrpii5w03rv2534bb2ywwpq8s"))))
+        (base32 "1lpnf61x4jbm55bpdr10k1a1pl3cs719i9y4qibsdj2bajz9vsh0"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-android-glue" ,rust-android-glue-0.2)
-        ("rust-cgl" ,rust-cgl-0.3)
-        ("rust-cocoa" ,rust-cocoa-0.23)
-        ("rust-core-foundation" ,rust-core-foundation-0.9)
-        ("rust-glutin-egl-sys" ,rust-glutin-egl-sys-0.1)
+       (("rust-glutin-egl-sys" ,rust-glutin-egl-sys-0.1)
         ("rust-glutin-emscripten-sys" ,rust-glutin-emscripten-sys-0.1)
         ("rust-glutin-gles2-sys" ,rust-glutin-gles2-sys-0.1)
         ("rust-glutin-glx-sys" ,rust-glutin-glx-sys-0.1)
         ("rust-glutin-wgl-sys" ,rust-glutin-wgl-sys-0.1)
         ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-libloading" ,rust-libloading-0.6)
+        ("rust-libloading" ,rust-libloading-0.7)
         ("rust-log" ,rust-log-0.4)
-        ("rust-objc" ,rust-objc-0.2)
         ("rust-osmesa-sys" ,rust-osmesa-sys-0.1)
         ("rust-parking-lot" ,rust-parking-lot-0.11)
-        ("rust-wayland-egl" ,rust-wayland-egl-0.28)
-        ("rust-winapi" ,rust-winapi-0.3)
-        ("rust-winit" ,rust-winit-0.24))))
+        ("rust-wayland-egl" ,rust-wayland-egl-0.29)
+        ("rust-winit" ,rust-winit-0.26))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-version-requirements
+           (lambda _
+             ;; Remove windows and ios, the patch applies to Cargo.toml.orig
+             (delete-file "Cargo.toml")
+             (rename-file "Cargo.toml.orig" "Cargo.toml"))))))
     (inputs
-     (list rust-wayland-client-0.28 rust-wayland-egl-0.28))
-    (home-page "https://github.com/tomaka/glutin")
+     (list rust-wayland-client-0.29 rust-wayland-egl-0.29))
+    (home-page "https://github.com/rust-windowing/glutin")
     (synopsis "Cross-platform OpenGL context provider")
     (description "This package provides an OpenGL context provider.")
     (license license:asl2.0)))
 
 (define-public rust-glutin-0.22
   (package
-    (inherit rust-glutin-0.26)
+    (inherit rust-glutin-0.28)
     (name "rust-glutin")
     (version "0.22.0-alpha5")
     (source
diff --git a/gnu/packages/patches/rust-glutin-remove-windows-ios.patch b/gnu/packages/patches/rust-glutin-remove-windows-ios.patch
new file mode 100644
index 0000000000..b3c61028b4
--- /dev/null
+++ b/gnu/packages/patches/rust-glutin-remove-windows-ios.patch
@@ -0,0 +1,43 @@
+This patch removes crates for Windows and IOS as GNU Guix does not support
+building for these platforms.
+--- glutin-0.28.0/Cargo.toml.orig	1973-11-29 22:33:09.000000000 +0100
++++ glutin-0.28.0/Cargo.toml.orig	2022-04-24 13:35:36.333502368 +0200
+@@ -24,38 +24,9 @@
+ lazy_static = "1.3"
+ winit = { version = "0.26", default-features = false }
+ 
+-[target.'cfg(target_os = "android")'.dependencies]
+-android_glue = "0.2"
+-glutin_egl_sys = { version = "0.1.5", path = "../glutin_egl_sys" }
+-parking_lot = "0.11"
+-
+ [target.'cfg(target_os = "emscripten")'.dependencies]
+ glutin_emscripten_sys = { version = "0.1.1", path = "../glutin_emscripten_sys" }
+ 
+-[target.'cfg(any(target_os = "ios", target_os = "macos"))'.dependencies]
+-objc = "0.2.6"
+-glutin_gles2_sys = { version = "0.1.5", path = "../glutin_gles2_sys" }
+-
+-[target.'cfg(target_os = "macos")'.dependencies]
+-cgl = "0.3"
+-cocoa = "0.24"
+-core-foundation = "0.9"
+-
+-[target.'cfg(target_os = "windows")'.dependencies.winapi]
+-version = "0.3"
+-features = [
+-    "winnt",
+-    "winuser",
+-    "wingdi",
+-    "libloaderapi",
+-]
+-
+-[target.'cfg(target_os = "windows")'.dependencies]
+-libloading = "0.7"
+-glutin_wgl_sys = { version = "0.1.5", path = "../glutin_wgl_sys" }
+-glutin_egl_sys = { version = "0.1.5", path = "../glutin_egl_sys" }
+-parking_lot = "0.11"
+-
+ [target.'cfg(any(target_os = "linux", target_os = "freebsd", target_os = "dragonfly", target_os = "netbsd", target_os = "openbsd"))'.dependencies]
+ osmesa-sys = "0.1"
+ wayland-client = { version = "0.29", features = ["dlopen"], optional = true }
-- 
2.35.1

From f8b0860697464a631d4d20bd6b82d6ee0ca2fdd7 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 24 Apr 2022 07:32:39 +0200
Subject: [PATCH v2 08/25] gnu: Add rust-dlib-0.5.

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

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 0bfa961b81..957f30329f 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -18389,10 +18389,10 @@ (define-public rust-dissimilar-1
 Google's diff-match-patch.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-dlib-0.4
+(define-public rust-dlib-0.5
   (package
     (name "rust-dlib")
-    (version "0.4.2")
+    (version "0.5.0")
     (source
      (origin
        (method url-fetch)
@@ -18401,13 +18401,14 @@ (define-public rust-dlib-0.4
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0xlsf3lrz9hd7q3ff6lp5mw4kn3nbryn746kd07i93r6wg8ia7xi"))))
+         "1547hy7nrhkrb2i09va244c0h8mr845ccbs2d2mc414c68bpa6xc"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-libloading" ,rust-libloading-0.6))))
+     `(#:tests? #f ; failing doc-tests
+       #:cargo-inputs
+       (("rust-libloading" ,rust-libloading-0.7))))
     (inputs
-     (list rust-libloading-0.6))
+     (list rust-libloading-0.7))
     (home-page "https://github.com/vberger/dlib")
     (synopsis "Helper macros for manually loading optional system libraries")
     (description
-- 
2.35.1

From e652e312b075ea8b5740a07a0fce85e1b7dc467e Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 24 Apr 2022 08:00:25 +0200
Subject: [PATCH v2 13/25] gnu: Add rust-wayland-cursor-0.29.

* gnu/packages/crates-graphics.scm (rust-wayland-cursor-0.29): New variable.
  (rust-wayland-cursor-0.28): Remove variable.

diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm
index 8012678999..ffe8f9e52d 100644
--- a/gnu/packages/crates-graphics.scm
+++ b/gnu/packages/crates-graphics.scm
@@ -2556,24 +2556,24 @@ (define-public rust-wayland-commons-0.21
        (("rust-nix" ,rust-nix-0.14)
         ("rust-wayland-sys" ,rust-wayland-sys-0.21))))))
 
-(define-public rust-wayland-cursor-0.28
+(define-public rust-wayland-cursor-0.29
   (package
     (name "rust-wayland-cursor")
-    (version "0.28.3")
+    (version "0.29.4")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "wayland-cursor" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0pvf96a9hg7b40vyvamcg491sa0006fr9bzf1xkaf8q22qn15syn"))))
+        (base32 "1gd6aswkrdz556n54pjpd4rchw7jkgcx6hnrhgy62y2y7pqmh9y5"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-nix" ,rust-nix-0.18)
+       (("rust-nix" ,rust-nix-0.22)
         ("rust-xcursor" ,rust-xcursor-0.3))))
     (inputs
-     (list rust-nix-0.18 rust-wayland-client-0.28 rust-xcursor-0.3))
+     (list rust-nix-0.22 rust-wayland-client-0.29 rust-xcursor-0.3))
     (home-page "https://github.com/smithay/wayland-rs")
     (synopsis "Bindings to libwayland-cursor")
     (description
-- 
2.35.1

From f215a3936c5e37ba172618ff190a876e12329e64 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 24 Apr 2022 07:57:00 +0200
Subject: [PATCH v2 12/25] gnu: Add rust-wayland-client-0.29.

* gnu/packages/crates-graphics.scm (rust-wayland-commons-0.29): New variable.
  (rust-wayland-client-0.23): Inherit from above.
  (rust-wayland-client-0.28): Remove variable.

diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm
index 06851ceee6..8012678999 100644
--- a/gnu/packages/crates-graphics.scm
+++ b/gnu/packages/crates-graphics.scm
@@ -2390,36 +2390,37 @@ (define-public rust-tiff-0.2
         ("rust-num-derive" ,rust-num-derive-0.2)
         ("rust-num-traits" ,rust-num-traits-0.2))))))
 
-(define-public rust-wayland-client-0.28
+(define-public rust-wayland-client-0.29
   (package
     (name "rust-wayland-client")
-    (version "0.28.3")
+    (version "0.29.4")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "wayland-client" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1mxnflzv9s3qpcp0z7kqvrzki5bknfar9n9yky06f8ivs00vxgdx"))))
+        (base32 "13s5sj9344izk2g48yizk81kcg8jg4940gg2v6bzcmrjwxh388li"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
+     `(#:tests? #f
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1.2)
         ("rust-downcast-rs" ,rust-downcast-rs-1)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-nix" ,rust-nix-0.18)
+        ("rust-nix" ,rust-nix-0.22)
         ("rust-scoped-tls" ,rust-scoped-tls-1))
        #:cargo-development-inputs
        (("rust-tempfile" ,rust-tempfile-3))))
     (inputs
-     (list rust-bitflags-1
+     (list rust-bitflags-1.2
            rust-downcast-rs-1
            rust-libc-0.2
-           rust-nix-0.18
+           rust-nix-0.22
            rust-scoped-tls-1
-           rust-wayland-commons-0.28
-           rust-wayland-scanner-0.28
-           rust-wayland-sys-0.28))
+           rust-wayland-commons-0.29
+           rust-wayland-scanner-0.29
+           rust-wayland-sys-0.29))
     (home-page "https://github.com/smithay/wayland-rs")
     (synopsis
      "Rust bindings to the standard C implementation of the wayland protocol")
@@ -2430,7 +2431,7 @@ (define-public rust-wayland-client-0.28
 
 (define-public rust-wayland-client-0.23
   (package
-    (inherit rust-wayland-client-0.28)
+    (inherit rust-wayland-client-0.29)
     (name "rust-wayland-client")
     (version "0.23.6")
     (source
-- 
2.35.1

From 49d0181facf606587fda49a0fe18c9525ec50c26 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 24 Apr 2022 11:06:41 +0200
Subject: [PATCH v2 24/25] gnu: alacritty: Update to 0.10.1.

* gnu/packages/terminals.scm (alacritty): Update to 0.10.1.
  [arguments]: Updat to rust-alacritty-terminal-0.16, rust-glutin-0.28,
  rust-raw-window-handle-0.4 and rust-wayland-client-0.29. Add rust-dirs-3,
  rust-structopt-0.3 and rust-unicode-width-0.1. Remove rust-clap-2,
  rust-time-0.1, rust-urlocator-0.1 in cargo-inputs.

diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 009809442c..ce9b08a1c1 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -29,7 +29,7 @@
 ;;; Copyright © 2021 ikasero <[email-masked]>
 ;;; Copyright © 2021 Brice Waegeneire <[email-masked]>
 ;;; Copyright © 2021 Solene Rapenne <[email-masked]>
-;;; Copyright © 2021 Petr Hodina <[email-masked]>
+;;; Copyright © 2021, 2022 Petr Hodina <[email-masked]>
 ;;; Copyright © 2022 Felipe Balbi <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -1389,7 +1389,7 @@ (define-public tio
 (define-public alacritty
   (package
     (name "alacritty")
-    (version "0.9.0")
+    (version "0.10.1")
     (source
      (origin
        ;; XXX: The crate at "crates.io" has limited contents.  In particular,
@@ -1400,35 +1400,35 @@ (define-public alacritty
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "068y0b1a0m33r7a3j2xf6k602sc8062gm4d5568ynfx6w5n481lj"))))
+        (base32 "1s38gyx0ifcf1vcr6n8gzbk7rg1apxrz7js8cp8x5k1s0m3abys3"))))
     (build-system cargo-build-system)
     (arguments
      `(#:install-source? #f     ; virtual manifest
        #:cargo-test-flags '("--release" "--" "--skip=config_read_eof")
        #:cargo-inputs
        (("rust-alacritty-config-derive" ,rust-alacritty-config-derive-0.1)
-        ("rust-alacritty-terminal" ,rust-alacritty-terminal-0.15)
-        ("rust-clap" ,rust-clap-2)
+        ("rust-alacritty-terminal" ,rust-alacritty-terminal-0.16)
         ("rust-cocoa" ,rust-cocoa-0.24)
         ("rust-copypasta" ,rust-copypasta-0.7)
         ("rust-crossfont" ,rust-crossfont-0.3)
+        ("rust-dirs" ,rust-dirs-3)
         ("rust-embed-resource" ,rust-embed-resource-1)
         ("rust-fnv" ,rust-fnv-1)
         ("rust-gl-generator" ,rust-gl-generator-0.14)
         ;; XXX: Adjust `add-absolute-library-references' phase when updating
         ;; glutin input.
-        ("rust-glutin" ,rust-glutin-0.26)
+        ("rust-glutin" ,rust-glutin-0.28)
         ("rust-log" ,rust-log-0.4)
         ("rust-notify" ,rust-notify-4)
         ("rust-objc" ,rust-objc-0.2)
         ("rust-parking-lot" ,rust-parking-lot-0.11)
         ("rust-png" ,rust-png-0.16)
-        ("rust-raw-window-handle" ,rust-raw-window-handle-0.3)
+        ("rust-raw-window-handle" ,rust-raw-window-handle-0.4)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-serde-yaml" ,rust-serde-yaml-0.8)
-        ("rust-time" ,rust-time-0.1)
-        ("rust-urlocator" ,rust-urlocator-0.1)
+        ("rust-structopt" ,rust-structopt-0.3)
+        ("rust-unicode-width" ,rust-unicode-width-0.1)
         ("rust-x11-dl" ,rust-x11-dl-2)
         ("rust-xdg" ,rust-xdg-2))
        #:phases
@@ -1439,14 +1439,14 @@ (define-public alacritty
                (("0.22.0") "^0.23.0"))))
          (add-after 'configure 'add-absolute-library-references
            (lambda* (#:key inputs cargo-inputs vendor-dir #:allow-other-keys)
-             (let* ((glutin-name ,(package-name rust-glutin-0.26))
-                    (glutin-version ,(package-version rust-glutin-0.26))
+             (let* ((glutin-name ,(package-name rust-glutin-0.28))
+                    (glutin-version ,(package-version rust-glutin-0.28))
                     (glutin-api (string-append glutin-name "-" glutin-version
                                                ".tar.gz/src/api/"))
                     (smithay-client-toolkit-name
-                     ,(package-name rust-smithay-client-toolkit-0.12))
+                     ,(package-name rust-smithay-client-toolkit-0.15))
                     (smithay-client-toolkit-version
-                     ,(package-version rust-smithay-client-toolkit-0.12))
+                     ,(package-version rust-smithay-client-toolkit-0.15))
                     (smithay-client-toolkit-src
                      (string-append smithay-client-toolkit-name "-"
                                     smithay-client-toolkit-version ".tar.gz/src"))
@@ -1531,7 +1531,7 @@ (define-public alacritty
        ("rust-dirs" ,rust-dirs-3)
        ("rust-libc" ,rust-libc-0.2)
        ("rust-unicode-width" ,rust-unicode-width-0.1)
-       ("rust-wayland-client" ,rust-wayland-client-0.28)
+       ("rust-wayland-client" ,rust-wayland-client-0.29)
        ("rust-winapi" ,rust-winapi-0.3)
        ("wayland" ,wayland)))
     (native-search-paths
-- 
2.35.1

From 31785a92c3f9764c2e9de09d4213d4013e172496 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 24 Apr 2022 13:01:03 +0200
Subject: [PATCH v2 17/25] gnu: rust-smithay-clipboard: Update to 0.6.5.

* gnu/packages/crates-graphics.scm (rust-smithay-clipboard): Update to 0.6.5.
  [arguments]: Update to rust-smithay-client-toolkit-0.15 and
  rust-wayland-client-0.29.

diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm
index f7cb0c0bb6..c8d0b56612 100644
--- a/gnu/packages/crates-graphics.scm
+++ b/gnu/packages/crates-graphics.scm
@@ -2259,20 +2259,20 @@ (define-public rust-smithay-client-toolkit-0.4
 (define-public rust-smithay-clipboard-0.6
   (package
     (name "rust-smithay-clipboard")
-    (version "0.6.2")
+    (version "0.6.5")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "smithay-clipboard" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "14dwisd56cbr80zf719l3fh0n8pm1fjmvry9lsbhdbccf8cv525b"))))
+        (base32 "0mfx96cqws3h1yp4f354yvrfh9ylhfyzr877p39byy2ks8dma2v1"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-smithay-client-toolkit" ,rust-smithay-client-toolkit-0.12)
-        ("rust-wayland-client" ,rust-wayland-client-0.28))))
+       (("rust-smithay-client-toolkit" ,rust-smithay-client-toolkit-0.15)
+        ("rust-wayland-client" ,rust-wayland-client-0.29))))
     (home-page "https://github.com/smithay/smithay-clipboard")
     (synopsis "Access to the Wayland clipboard for client applications")
     (description
-- 
2.35.1

From b7b3692014a770660ebfaa9f456c04955c7b418d Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 24 Apr 2022 14:37:29 +0200
Subject: [PATCH v2 25/25] gnu: Add wl-clipboard-rs-0.6.

* gnu/local.mk: Remove patch.
* gnu/packages/crates-io.scm (wl-clipboard-rs-0.6): Add new variable.
  (wl-clipboard-rs-0.4): Remove variable.
* gnu/packages/patches/rust-wl-clipboard-rs-newer-wl.patch: Remove file.

diff --git a/gnu/local.mk b/gnu/local.mk
index c8efbe4516..79042c65ff 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1783,7 +1783,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/rust-openssl-sys-no-vendor.patch	\
   %D%/packages/patches/rust-shell2batch-lint-fix.patch		\
   %D%/packages/patches/rust-winit-remove-windows-and-ios.patch \
-  %D%/packages/patches/rust-wl-clipboard-rs-newer-wl.patch      \
   %D%/packages/patches/sbc-fix-build-non-x86.patch		\
   %D%/packages/patches/sbcl-aserve-add-HTML-5-elements.patch	\
   %D%/packages/patches/sbcl-aserve-fix-rfe12668.patch	\
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index b6c2bdd003..7d623b0e8d 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -69876,38 +69876,34 @@ (define-public rust-watchexec-1
 modifications.")
     (license license:asl2.0)))
 
-(define-public rust-wl-clipboard-rs-0.4
+(define-public rust-wl-clipboard-rs-0.6
   (package
     (name "rust-wl-clipboard-rs")
-    (version "0.4.1")
+    (version "0.6.0")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "wl-clipboard-rs" version))
         (file-name (string-append name "-" version ".tar.gz"))
-        (patches (search-patches "rust-wl-clipboard-rs-newer-wl.patch"))
         (sha256
-          (base32 "1252cm67pkrr6ik5ys2cdyfr2zzw6ds7v351i1cmyi94yiv01l13"))))
+          (base32 "12ydiayklrls2ys8ig2rljl86z21ixg672zhdsprnaiqpz8s6p5y"))))
     (build-system cargo-build-system)
     (arguments
       `(#:skip-build? #t
         #:cargo-inputs
         (("rust-derive-new" ,rust-derive-new-0.5)
          ("rust-derive-more" ,rust-derive-more-0.99)
-         ("rust-exitfailure" ,rust-exitfailure-0.5)
-         ("rust-failure" ,rust-failure-0.1)
          ("rust-libc" ,rust-libc-0.2)
          ("rust-log" ,rust-log-0.4)
-         ("rust-mime-guess" ,rust-mime-guess-2)
-         ("rust-nix" ,rust-nix-0.18)
-         ("rust-os-pipe" ,rust-os-pipe-0.9)
-         ("rust-stderrlog" ,rust-stderrlog-0.4)
-         ("rust-structopt" ,rust-structopt-0.3)
+         ("rust-nix" ,rust-nix-0.23)
+         ("rust-os-pipe" ,rust-os-pipe-1)
          ("rust-tempfile" ,rust-tempfile-3)
-         ("rust-tree-magic" ,rust-tree-magic-0.2)
-         ("rust-wayland-client" ,rust-wayland-client-0.28)
-         ("rust-wayland-commons" ,rust-wayland-commons-0.28)
-         ("rust-wayland-protocols" ,rust-wayland-protocols-0.28))))
+         ("rust-tree-magic-mini" ,rust-tree-magic-mini-3)
+         ("rust-wayland-client" ,rust-wayland-client-0.29)
+         ("rust-wayland-protocols" ,rust-wayland-protocols-0.29))
+       #:cargo-development-inputs
+       (("rust-wayland-protocols" ,rust-wayland-protocols-0.29)
+	    ("rust-wayland-server" ,rust-wayland-server-0.29))))
     (home-page "https://github.com/YaLTeR/wl-clipboard-rs")
     (synopsis "Access to the Wayland clipboard")
     (description "This package provides access to the Wayland clipboard
diff --git a/gnu/packages/patches/rust-wl-clipboard-rs-newer-wl.patch b/gnu/packages/patches/rust-wl-clipboard-rs-newer-wl.patch
deleted file mode 100644
index 9fb692e9a6..0000000000
--- a/gnu/packages/patches/rust-wl-clipboard-rs-newer-wl.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/Cargo.toml b/Cargo.toml
-index 7b975e0..313cb63 100644
---- a/Cargo.toml
-+++ b/Cargo.toml.new
-@@ -75,17 +75,17 @@ version = "3"
- version = "0.2"
- 
- [dependencies.wayland-client]
--version = "0.27"
-+version = "0.28"
- 
- [dependencies.wayland-protocols]
--version = "0.27"
-+version = "0.28"
- features = ["client", "unstable_protocols"]
- [dev-dependencies.wayland-protocols]
--version = "0.27"
-+version = "0.28"
- features = ["server", "unstable_protocols"]
- 
- [dev-dependencies.wayland-server]
--version = "0.27"
-+version = "0.28"
- 
- [features]
- dlopen = ["native_lib", "wayland-client/dlopen", "wayland-server/dlopen"]
-- 
2.35.1

From a1941f1d65170f973892539c078821d0d07e9f0a Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 24 Apr 2022 07:36:52 +0200
Subject: [PATCH v2 09/25] gnu: Add rust-wayland-scanner-0.29.

* gnu/packages/crates-graphics.scm (rust-wayland-scanner-0.29): New variable.
  (rust-wayland-scanner-0.28): Remove variable.

diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm
index dfb12dff69..44a050a25e 100644
--- a/gnu/packages/crates-graphics.scm
+++ b/gnu/packages/crates-graphics.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2020 Antoine Côté <[email-masked]>
 ;;; Copyright © 2021 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2021 Zheng Junjie <[email-masked]>
+;;; Copyright © 2022 Petr Hodina <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2679,17 +2680,17 @@ (define-public rust-wayland-protocols-0.21
         ("rust-wayland-sys" ,rust-wayland-sys-0.21)
         ("rust-wayland-scanner" ,rust-wayland-scanner-0.21))))))
 
-(define-public rust-wayland-scanner-0.28
+(define-public rust-wayland-scanner-0.29
   (package
     (name "rust-wayland-scanner")
-    (version "0.28.3")
+    (version "0.29.4")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "wayland-scanner" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0g8ky63qk27in7zajycj3fyydsxlj19hanfcvr8d7z5kcxbvl43h"))))
+        (base32 "1q7r764z8k922xf51fj56b1xm29ffi9ap8jnf4c478gp8cqyv89r"))))
     (build-system cargo-build-system)
     (inputs
      (list rust-proc-macro2-1 rust-quote-1 rust-xml-rs-0.8))
@@ -2704,7 +2705,7 @@ (define-public rust-wayland-scanner-0.28
 
 (define-public rust-wayland-scanner-0.23
   (package
-    (inherit rust-wayland-scanner-0.28)
+    (inherit rust-wayland-scanner-0.29)
     (name "rust-wayland-scanner")
     (version "0.23.6")
     (source
-- 
2.35.1

From 3528519cbc193feaa6f63c6d56b802add05a5def Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 24 Apr 2022 07:41:43 +0200
Subject: [PATCH v2 10/25] gnu: Add rust-wayland-sys-0.29.

* gnu/packages/crates-graphics.scm (rust-wayland-0.29): New variable.
  (rust-wayland-sys-0.23): Inherit from above.

diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm
index 44a050a25e..414245f7a7 100644
--- a/gnu/packages/crates-graphics.scm
+++ b/gnu/packages/crates-graphics.scm
@@ -2833,23 +2833,24 @@ (define-public rust-wayland-server-0.21
         ("rust-wayland-sys" ,rust-wayland-sys-0.21)
         ("rust-wayland-scanner" ,rust-wayland-scanner-0.21))))))
 
-(define-public rust-wayland-sys-0.28
+(define-public rust-wayland-sys-0.29
   (package
     (name "rust-wayland-sys")
-    (version "0.28.3")
+    (version "0.29.4")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "wayland-sys" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "16f03jsy7q6p2wpaazc4w4kycyyk0fz7lacpdbcizl9m1i7874v7"))))
+        (base32 "1m2jwk5q36jidwbdmdicmi27r9dzi4wanzg3i28nfxc9kbvisd6r"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-dlib" ,rust-dlib-0.4)
+       (("rust-dlib" ,rust-dlib-0.5)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
+        ("rust-memoffset" ,rust-memoffset-0.6)
         ("rust-pkg-config" ,rust-pkg-config-0.3))
        #:phases
        (modify-phases %standard-phases
@@ -2861,7 +2862,10 @@ (define-public rust-wayland-sys-0.28
                   (string-append libwayland "/lib/" shared-lib)))
                #t))))))
     (inputs
-     (list rust-dlib-0.4 rust-lazy-static-1 rust-libc-0.2
+     (list rust-dlib-0.5
+           rust-lazy-static-1
+           rust-libc-0.2
+           rust-memoffset-0.6
            rust-pkg-config-0.3))
     (propagated-inputs
      (list wayland))
@@ -2876,7 +2880,7 @@ (define-public rust-wayland-sys-0.28
 
 (define-public rust-wayland-sys-0.23
   (package
-    (inherit rust-wayland-sys-0.28)
+    (inherit rust-wayland-sys-0.29)
     (name "rust-wayland-sys")
     (version "0.23.6")
     (source
-- 
2.35.1

From 85807cf5c41a2d6afc1597bc05516cdc9bac919c Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 24 Apr 2022 11:01:28 +0200
Subject: [PATCH v2 23/25] gnu: Add rust-alacritty-terminal-0.16.

* gnu/packages/crates-graphics.scm (rust-alacritty-terminal-0.16): New variable.
  (rust-alacritty-terminal-0.15): Remove variable.

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index a2aef256c2..b6c2bdd003 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -2511,17 +2511,17 @@ (define-public rust-alacritty-config-derive-0.1
      "This package provides a failure resistant deserialization derive.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-alacritty-terminal-0.15
+(define-public rust-alacritty-terminal-0.16
   (package
     (name "rust-alacritty-terminal")
-    (version "0.15.0")
+    (version "0.16.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "alacritty_terminal" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1qv8zv20qgn407v8m196p68yddvhalcppc21702698cj99b45ckc"))))
+        (base32 "0bvffvjmkran068p9bz0p9nrkj1k4bggd7q39mszjfafz155vyq2"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -2529,19 +2529,20 @@ (define-public rust-alacritty-terminal-0.15
        (("rust-alacritty-config-derive" ,rust-alacritty-config-derive-0.1)
         ("rust-base64" ,rust-base64-0.13)
         ("rust-bitflags" ,rust-bitflags-1)
-        ("rust-dirs" ,rust-dirs-2)
+        ("rust-dirs" ,rust-dirs-3)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-log" ,rust-log-0.4)
         ("rust-mio" ,rust-mio-0.6)
         ("rust-mio-anonymous-pipes" ,rust-mio-anonymous-pipes-0.2)
         ("rust-mio-extras" ,rust-mio-extras-2)
         ("rust-miow" ,rust-miow-0.3)
-        ("rust-nix" ,rust-nix-0.23)
+        ("rust-nix" ,rust-nix-0.22)
         ("rust-parking-lot" ,rust-parking-lot-0.11)
         ("rust-regex-automata" ,rust-regex-automata-0.1)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-yaml" ,rust-serde-yaml-0.8)
-        ("rust-signal-hook" ,rust-signal-hook-0.1)
+        ("rust-signal-hook" ,rust-signal-hook-0.3)
+        ("rust-signal-hook-mio" ,rust-signal-hook-mio-0.2)
         ("rust-unicode-width" ,rust-unicode-width-0.1)
         ("rust-vte" ,rust-vte-0.10)
         ("rust-winapi" ,rust-winapi-0.3))))
-- 
2.35.1

From e86ba3447c9af6fb5676257dc3a2d2f4c5c3f33d Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 24 Apr 2022 08:23:59 +0200
Subject: [PATCH v2 16/25] gnu: Add rust-smithay-client-toolkit-0.15.

* gnu/packages/crates-graphics.scm (rust-smithay-client-toolkit-0.15): New variable.
  (rust-smithay-client-toolkit-0.6): Inherit from above.
  (rust-smithay-client-toolkit-0.12): Remove variable.

diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm
index 8fdd64bb1a..f7cb0c0bb6 100644
--- a/gnu/packages/crates-graphics.scm
+++ b/gnu/packages/crates-graphics.scm
@@ -2162,32 +2162,35 @@ (define-public rust-rgb-0.8
 first-class Rust objects.")
     (license license:expat)))
 
-(define-public rust-smithay-client-toolkit-0.12
+(define-public rust-smithay-client-toolkit-0.15
   (package
     (name "rust-smithay-client-toolkit")
-    (version "0.12.2")
+    (version "0.15.4")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "smithay-client-toolkit" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1rjdszpf8pns99gyy8f5axf01ckc33f30dddfazyfg45xfii6vii"))))
+        (base32 "18wxla80y6m4l3dwawi7bl1d9m9dfcg4sxxjcgjqq3psjxmg2a4a"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-andrew" ,rust-andrew-0.3)
-        ("rust-bitflags" ,rust-bitflags-1)
-        ("rust-calloop" ,rust-calloop-0.6)
-        ("rust-dlib" ,rust-dlib-0.4)
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-calloop" ,rust-calloop-0.9)
+        ("rust-dlib" ,rust-dlib-0.5)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-log" ,rust-log-0.4)
-        ("rust-memmap2" ,rust-memmap2-0.1)
-        ("rust-nix" ,rust-nix-0.18)
-        ("rust-wayland-client" ,rust-wayland-client-0.28)
-        ("rust-wayland-cursor" ,rust-wayland-cursor-0.28)
-        ("rust-wayland-protocols" ,rust-wayland-protocols-0.28))))
+        ("rust-memmap2" ,rust-memmap2-0.3)
+        ("rust-nix" ,rust-nix-0.22)
+        ("rust-pkg-config" ,rust-pkg-config-0.3)
+        ("rust-wayland-client" ,rust-wayland-client-0.29)
+        ("rust-wayland-cursor" ,rust-wayland-cursor-0.29)
+        ("rust-wayland-protocols" ,rust-wayland-protocols-0.29))
+       #:cargo-development-inputs
+       (("rust-image" ,rust-image-0.23))))
+    (inputs (list rust-wayland-commons-0.29 rust-wayland-scanner-0.29))
     (home-page "https://github.com/smithay/client-toolkit")
     (synopsis "Toolkit for making client Wayland applications")
     (description
@@ -2196,7 +2199,7 @@ (define-public rust-smithay-client-toolkit-0.12
 
 (define-public rust-smithay-client-toolkit-0.6
   (package
-    (inherit rust-smithay-client-toolkit-0.12)
+    (inherit rust-smithay-client-toolkit-0.15)
     (name "rust-smithay-client-toolkit")
     (version "0.6.4")
     (source
-- 
2.35.1

From 580d35638c85c2eeeaba3aa25421738d42ab7860 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 24 Apr 2022 10:17:22 +0200
Subject: [PATCH v2 20/25] gnu: Add rust-wayland-egl-0.29.

* gnu/packages/crates-io.scm (rust-wayland-egl-0.29): New variable.
  (rust-wayland-egl-0.28): Remove variable.

diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm
index 9c31b0d415..cc5df11d70 100644
--- a/gnu/packages/crates-graphics.scm
+++ b/gnu/packages/crates-graphics.scm
@@ -2585,20 +2585,25 @@ (define-public rust-wayland-cursor-0.29
 properly display animated cursors.")
     (license license:expat)))
 
-(define-public rust-wayland-egl-0.28
+(define-public rust-wayland-egl-0.29
   (package
     (name "rust-wayland-egl")
-    (version "0.28.3")
+    (version "0.29.4")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "wayland-egl" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1xd7iap0x4sidmy9dv02cdnxjhnbk9li7r7f39x9cg0i8xs50ly6"))))
+        (base32 "0flslbp8q4nv3hcw941vapn3jh6y7glqaqv63h1mjaqnxrlisa43"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-autocfg" ,rust-autocfg-1)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-cfg-if" ,rust-cfg-if-1))))
     (inputs
-     (list rust-wayland-client-0.28 rust-wayland-sys-0.28))
+     (list rust-wayland-client-0.29 rust-wayland-sys-0.29))
     ;; For the PKG_CONFIG_PATH environment variable.
     (native-inputs
      (list pkg-config))
-- 
2.35.1

From a143c7371d274e44783cd215f80c085a564ac9a3 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 24 Apr 2022 06:51:39 +0200
Subject: [PATCH v2 04/25] gnu: Add rust-raw-window-handle-0.4.

* gnu/packages/crates-io.scm (rust-raw-window-handle-0.4): New variable.
  (rust-raw-window-handle-0.3): Remove variable.

diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm
index d1a9c4dd6d..dfb12dff69 100644
--- a/gnu/packages/crates-graphics.scm
+++ b/gnu/packages/crates-graphics.scm
@@ -2087,10 +2087,10 @@ (define-public rust-ravif-0.6
 images in AVIF format.")
     (license license:bsd-3)))
 
-(define-public rust-raw-window-handle-0.3
+(define-public rust-raw-window-handle-0.4
   (package
     (name "rust-raw-window-handle")
-    (version "0.3.3")
+    (version "0.4.3")
     (source
      (origin
        (method url-fetch)
@@ -2099,10 +2099,10 @@ (define-public rust-raw-window-handle-0.3
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "04c2wir7qq3g2b143yav52a1g5ack8ffqx2bpmrn9bc0dix1li0a"))))
+         "0hgvrqbr2b62zhq4ryv08h92mwis9v8f7j9pwcgxzlp7nswvw05q"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
+     `(#:cargo-inputs (("rust-cty" ,rust-cty-0.2))))
     (home-page "https://github.com/rust-windowing/raw-window-handle")
     (synopsis "Interoperability library for Rust Windowing applications")
     (description
-- 
2.35.1

From d927e95c1f6da1a7af3310725a4bd04a0797ed25 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Sun, 24 Apr 2022 08:05:12 +0200
Subject: [PATCH v2 14/25] gnu: Add rust-wayland-server-0.29.

* gnu/packages/crates-graphics.scm (rust-wayland-server-0.29): New variable.
  (rust-wayland-server-0.23): Inherit from above.
  (rust-wayland-server-0.28): Remove variable.

diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm
index ffe8f9e52d..f2eaedf624 100644
--- a/gnu/packages/crates-graphics.scm
+++ b/gnu/packages/crates-graphics.scm
@@ -2740,17 +2740,17 @@ (define-public rust-wayland-scanner-0.21
         (base32
          "17mp49v7w0p0x5ry628lj2llljnwkr9aj9g4bqqhfibid32jhf5z"))))))
 
-(define-public rust-wayland-server-0.28
+(define-public rust-wayland-server-0.29
   (package
     (name "rust-wayland-server")
-    (version "0.28.3")
+    (version "0.29.4")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "wayland-server" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "09jfdjfqhjfcpiz4csgh60ymfkmz1cl3jmxyzq9hzcp0kyyxix93"))))
+        (base32 "1wj8gf28dbjwb824i29wf3wr5r6wp6ssknjm9b5dnb1fah47mk66"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -2758,7 +2758,7 @@ (define-public rust-wayland-server-0.28
         ("rust-downcast-rs" ,rust-downcast-rs-1)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-nix" ,rust-nix-0.18)
+        ("rust-nix" ,rust-nix-0.22)
         ("rust-parking-lot" ,rust-parking-lot-0.11)
         ("rust-scoped-tls" ,rust-scoped-tls-1))))
     (inputs
@@ -2766,12 +2766,12 @@ (define-public rust-wayland-server-0.28
            rust-downcast-rs-1
            rust-lazy-static-1
            rust-libc-0.2
-           rust-nix-0.18
+           rust-nix-0.22
            rust-parking-lot-0.11
            rust-scoped-tls-1
-           rust-wayland-commons-0.28
-           rust-wayland-scanner-0.28
-           rust-wayland-sys-0.28))
+           rust-wayland-commons-0.29
+           rust-wayland-scanner-0.29
+           rust-wayland-sys-0.29))
     (home-page "https://github.com/smithay/wayland-rs")
     (synopsis
      "Bindings to the standard C implementation of the wayland protocol")
@@ -2782,7 +2782,7 @@ (define-public rust-wayland-server-0.28
 
 (define-public rust-wayland-server-0.23
   (package
-    (inherit rust-wayland-server-0.28)
+    (inherit rust-wayland-server-0.29)
     (name "rust-wayland-server")
     (version "0.23.6")
     (source
-- 
2.35.1