Subject: [PATCH 01/20] gnu: Add rust-gtk3-macros-0.14.
From: phodina <[email-masked]>
To: Guix Patches <[email-masked]>
Date: Mon, 10 Jan 2022 22:33:47 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

here's a set of patches to update the Rust support for GTK.

----
Petr

From c5c3b073bf55bf8255c65625e03e513a5182ea25 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 10 Jan 2022 18:50:29 +0100
Subject: [PATCH 01/20] gnu: Add rust-gtk3-macros-0.14.

* gnu/packages/crates-gtk.scm (rust-gtk3-macros-0.14): New variable.

diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index b22905629f..b06c6ea556 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2020, 2021 Efraim Flashner <[email-masked]>
 ;;; Copyright © 2020, 2021 Nicolas Goaziou <[email-masked]>
+;;; Copyright © 2022 Petr Hodina <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -977,6 +978,35 @@ (define-public rust-gtk-sys-0.9
     (description "This package provides FFI bindings to libgtk-3.")
     (license license:expat)))
 
+(define-public rust-gtk3-macros-0.14
+  (package
+    (name "rust-gtk3-macros")
+    (version "0.14.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gtk3-macros" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0yavfirn2iw9nsxik6m7s2cdxdrl5l5jfbiwn0zl85y1dnlivpi1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build?
+       #t
+       #:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-heck" ,rust-heck-0.3)
+        ("rust-proc-macro-crate" ,rust-proc-macro-crate-1)
+        ("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://gtk-rs.org/")
+    (synopsis "Rust bindings for the GTK 3 library")
+    (description "This package provides Rust bindings for the GTK 3
+library.")
+    (license license:expat)))
+
 (define-public rust-pango-0.9
   (package
     (name "rust-pango")
-- 
2.34.0

From af0663f9d68a9761d5739243312b7b171afa7c8b Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 10 Jan 2022 22:52:34 +0100
Subject: [PATCH 19/20] gnu: Add rust-gtk-sys-0.14.

* gnu/packages/crates-gtk.scm (rust-gtk-sys-0.14): New variable.
  (rust-gtk-sys-0.9): Inherit from above.

diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index c91556a098..1cc24ed222 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -1291,8 +1291,45 @@ (define-public rust-gtk-rs-lgpl-docs-0.1
      "LGPL-licensed docs for Gtk-rs crates.")
     (license license:lgpl2.0)))
 
+(define-public rust-gtk-sys-0.14
+  (package
+    (name "rust-gtk-sys")
+    (version "0.14.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gtk-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0gihp9zh4z7lycp0zbmq1w0k9ddbnd2h64jsgid7hi85vb9wh54c"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                      ;missing files
+       #:cargo-inputs
+       (("rust-atk-sys" ,rust-atk-sys-0.14)
+        ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.14)
+        ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.14)
+        ("rust-gdk-sys" ,rust-gdk-sys-0.14)
+        ("rust-gio-sys" ,rust-gio-sys-0.14)
+        ("rust-glib-sys" ,rust-glib-sys-0.14)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.14)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pango-sys" ,rust-pango-sys-0.14)
+        ("rust-system-deps" ,rust-system-deps-3))
+       #:cargo-development-inputs
+       (("rust-shell-words" ,rust-shell-words-1)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (native-inputs (list pkg-config))
+    (inputs
+     (list gtk+))
+    (home-page "https://gtk-rs.org/")
+    (synopsis "FFI bindings to libgtk-3")
+    (description "This package provides FFI bindings to libgtk-3.")
+    (license license:expat)))
+
 (define-public rust-gtk-sys-0.9
   (package
+    (inherit rust-gtk-sys-0.14)
     (name "rust-gtk-sys")
     (version "0.9.2")
     (source
@@ -1302,7 +1339,6 @@ (define-public rust-gtk-sys-0.9
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1hd4w49iaivzjkbxi0bhabqp1ifkzg9g47n822sh12xlqxhgdpjk"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:tests? #f                      ;missing files
        #:cargo-inputs
@@ -1318,13 +1354,7 @@ (define-public rust-gtk-sys-0.9
         ("rust-pkg-config" ,rust-pkg-config-0.3))
        #:cargo-development-inputs
        (("rust-shell-words" ,rust-shell-words-0.1)
-        ("rust-tempfile" ,rust-tempfile-3))))
-    (inputs
-     (list gtk+))
-    (home-page "https://gtk-rs.org/")
-    (synopsis "FFI bindings to libgtk-3")
-    (description "This package provides FFI bindings to libgtk-3.")
-    (license license:expat)))
+        ("rust-tempfile" ,rust-tempfile-3))))))
 
 (define-public rust-gtk3-macros-0.14
   (package
-- 
2.34.0

From 23c1bea418a8bdbf6d252ec2f2ad4cf41cdfac3d Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 10 Jan 2022 19:03:28 +0100
Subject: [PATCH 02/20] gnu: Add rust-glib-macros-0.14.

* gnu/packages/crates-gtk.scm (rust-glib-macros-0.14): New variable.
 (rust-glib-macros-0.10): Inherit from above.

diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index b06c6ea556..c29ea7f25a 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -749,25 +749,25 @@ (define-public rust-glib-0.8
        #:cargo-development-inputs
        (("rust-tempfile" ,rust-tempfile-3))))))
 
-(define-public rust-glib-macros-0.10
+(define-public rust-glib-macros-0.14
   (package
     (name "rust-glib-macros")
-    (version "0.10.1")
+    (version "0.14.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "glib-macros" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0fa00s6gnj3hgri9z926199jidczlmjr1db0n4r80sins4k6lj21"))))
+        (base32 "0675i7m7pksg4cd9kfpzjnw0x5r3y4gcac7mfgy6nyb63wv6db9a"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:skip-build?
+       #t
        #:cargo-inputs
        (("rust-anyhow" ,rust-anyhow-1)
         ("rust-heck" ,rust-heck-0.3)
-        ("rust-itertools" ,rust-itertools-0.9)
-        ("rust-proc-macro-crate" ,rust-proc-macro-crate-0.1)
+        ("rust-proc-macro-crate" ,rust-proc-macro-crate-1)
         ("rust-proc-macro-error" ,rust-proc-macro-error-1)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
@@ -777,6 +777,30 @@ (define-public rust-glib-macros-0.10
     (description "Rust bindings for the GLib library, proc macros crate.")
     (license license:expat)))
 
+(define-public rust-glib-macros-0.10
+  (package
+    (inherit rust-glib-macros-0.14)
+    (name "rust-glib-macros")
+    (version "0.10.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glib-macros" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0fa00s6gnj3hgri9z926199jidczlmjr1db0n4r80sins4k6lj21"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-heck" ,rust-heck-0.3)
+        ("rust-itertools" ,rust-itertools-0.9)
+        ("rust-proc-macro-crate" ,rust-proc-macro-crate-0.1)
+        ("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))))))
+
 (define-public rust-glib-sys-0.10
   (package
     (name "rust-glib-sys")
-- 
2.34.0

From 12568187ea5bde52ad84123425df7926f44eafad Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 10 Jan 2022 19:09:15 +0100
Subject: [PATCH 03/20] gnu: Add rust-glib-sys-0.14.

* gnu/packages/crates-gtk.scm (rust-glib-sys-0.14): New variable.
  (rust-glib-sys-0.10): Inherit from above.

diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index c29ea7f25a..a7f7c72ad4 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -801,23 +801,24 @@ (define-public rust-glib-macros-0.10
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1))))))
 
-(define-public rust-glib-sys-0.10
+(define-public rust-glib-sys-0.14
   (package
     (name "rust-glib-sys")
-    (version "0.10.1")
+    (version "0.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "glib-sys" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1hfdwilf3dnrv3pnfbwmp3h2afgwvfsapcgjfg8276kflsbvksf7"))))
+        (base32 "1bjlymn3fw4g8slij6iiggaipknf9072mr2qm3i4a91199an078w"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:skip-build?
+       #t
        #:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
-        ("rust-system-deps" ,rust-system-deps-1))
+        ("rust-system-deps" ,rust-system-deps-3))
        #:cargo-development-inputs
        (("rust-shell-words" ,rust-shell-words-0.1)
         ("rust-tempfile" ,rust-tempfile-3))))
@@ -828,6 +829,27 @@ (define-public rust-glib-sys-0.10
     (description "This package provides FFI bindings to libglib-2.0.")
     (license license:expat)))
 
+(define-public rust-glib-sys-0.10
+  (package
+    (inherit rust-glib-sys-0.14)
+    (name "rust-glib-sys")
+    (version "0.10.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glib-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1hfdwilf3dnrv3pnfbwmp3h2afgwvfsapcgjfg8276kflsbvksf7"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-system-deps" ,rust-system-deps-1))
+       #:cargo-development-inputs
+       (("rust-shell-words" ,rust-shell-words-0.1)
+        ("rust-tempfile" ,rust-tempfile-3))))))
+
 (define-public rust-glib-sys-0.9
   (package
     (inherit rust-glib-sys-0.10)
-- 
2.34.0

From 34c176678a93f1960fa12f995c8feb3de2d2ea77 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 10 Jan 2022 19:16:39 +0100
Subject: [PATCH 05/20] gnu: Add rust-glib-0.14.

* gnu/packages/crates-gtk.scm (rust-glib-0.14): New variable.
  (rust-glib-0.10): Inherit from above.

diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index 0b4f6fb677..9d6951acdd 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -660,8 +660,44 @@ (define-public rust-gir-format-check-0.1
     (description "File format checker in Rust.")
     (license license:expat)))
 
+(define-public rust-glib-0.14
+  (package
+    (name "rust-glib")
+    (version "0.14.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glib" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "194n6w5yy869lls3pr46x5nm049cn02qsljzcgv1w5dzc8g5ylbw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build?
+       #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-futures-channel" ,rust-futures-channel-0.3)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-executor" ,rust-futures-executor-0.3)
+        ("rust-futures-task" ,rust-futures-task-0.3)
+        ("rust-glib-macros" ,rust-glib-macros-0.14)
+        ("rust-glib-sys" ,rust-glib-sys-0.14)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.14)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-smallvec" ,rust-smallvec-1))))
+    (inputs
+     (list glib))
+    (home-page "https://gtk-rs.org/")
+    (synopsis "Rust bindings for the GLib library")
+    (description "Rust bindings for the GLib library")
+    (license license:expat)))
+
 (define-public rust-glib-0.10
   (package
+    (inherit rust-glib-0.14)
     (name "rust-glib")
     (version "0.10.3")
     (source
@@ -671,7 +707,6 @@ (define-public rust-glib-0.10
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1ifh56nhvhcrssxqkad876qqrlnl16q6b8ap3f7ncpjinw9m0s0c"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -686,13 +721,7 @@ (define-public rust-glib-0.10
         ("rust-glib-sys" ,rust-glib-sys-0.10)
         ("rust-gobject-sys" ,rust-gobject-sys-0.10)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-once-cell" ,rust-once-cell-1))))
-    (inputs
-     (list glib))
-    (home-page "https://gtk-rs.org/")
-    (synopsis "Rust bindings for the GLib library")
-    (description "Rust bindings for the GLib library")
-    (license license:expat)))
+        ("rust-once-cell" ,rust-once-cell-1))))))
 
 (define-public rust-glib-0.9
   (package
-- 
2.34.0

From 493ad98e2a4d8b7cdab80d423d8d3d0ba44dc4e3 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 10 Jan 2022 22:49:29 +0100
Subject: [PATCH 20/20] gnu: Add rust-gtk-0.14.

* gnu/packages/crates-gtk.scm (rust-gtk-0.14): New variable.
  (rust-gtk-0.8): Inherit from above.

diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index 1cc24ed222..df898298aa 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -1226,8 +1226,49 @@ (define-public rust-gobject-sys-0.9
        (("rust-shell-words" ,rust-shell-words-0.1)
         ("rust-tempfile" ,rust-tempfile-3))))))
 
+(define-public rust-gtk-0.14
+  (package
+    (name "rust-gtk")
+    (version "0.14.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gtk" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0367kb9d9x5cry6zpn2ccsahvynia6hzmr61gqrfj5rkvli13d9f"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                      ;requires running server
+       #:cargo-inputs
+       (("rust-atk" ,rust-atk-0.14)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cairo-rs" ,rust-cairo-rs-0.14)
+        ("rust-field-offset" ,rust-field-offset-0.3)
+        ("rust-futures-channel" ,rust-futures-channel-0.3)
+        ("rust-gdk" ,rust-gdk-0.14)
+        ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.14)
+        ("rust-gio" ,rust-gio-0.14)
+        ("rust-glib" ,rust-glib-0.14)
+        ("rust-gtk-sys" ,rust-gtk-sys-0.14)
+        ("rust-gtk3-macros" ,rust-gtk3-macros-0.14)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-pango" ,rust-pango-0.14)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
+    (native-inputs (list pkg-config))
+    (inputs
+     (list atk cairo glib gtk+ pango))
+    (home-page "https://gtk-rs.org/")
+    (synopsis "Rust bindings for the GTK+ 3 library")
+    (description "This package provides Rust bindings for the GTK+ 3 library.")
+    (license license:expat)))
+
 (define-public rust-gtk-0.8
   (package
+    (inherit rust-gtk-0.14)
     (name "rust-gtk")
     (version "0.8.1")
     (source
@@ -1262,13 +1303,7 @@ (define-public rust-gtk-0.8
         ("rust-pango" ,rust-pango-0.8)
         ("rust-pango-sys" ,rust-pango-sys-0.9))
        #:cargo-development-inputs
-       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
-    (inputs
-     (list atk cairo glib gtk+ pango))
-    (home-page "https://gtk-rs.org/")
-    (synopsis "Rust bindings for the GTK+ 3 library")
-    (description "This package provides Rust bindings for the GTK+ 3 library.")
-    (license license:expat)))
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
 
 (define-public rust-gtk-rs-lgpl-docs-0.1
   (package
-- 
2.34.0

From e78f7feab3ba8d54c41a402677934f1bdb846ecc Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 10 Jan 2022 19:32:31 +0100
Subject: [PATCH 08/20] gnu: Add rust-gio-sys-0.14.

* gnu/packages/crates-gtk.scm (rust-gio-sys-0.14): New variable.
  (rust-gio-sys-0.10): Inherit from above.

diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index 3fa14e4324..d0431f53df 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -591,25 +591,26 @@ (define-public rust-gio-0.7
        #:cargo-development-inputs
        (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
 
-(define-public rust-gio-sys-0.10
+(define-public rust-gio-sys-0.14
   (package
     (name "rust-gio-sys")
-    (version "0.10.1")
+    (version "0.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "gio-sys" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1b2f6jvghm2djymj3qrgbqfci2f95gyhdin2pgv2qpcg5xszn92y"))))
+        (base32 "1yj8dx2rna07av3jwyd93s832kw8dg14zxxwqj3w5z2pdvv1v960"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:skip-build?
+       #t
        #:cargo-inputs
-       (("rust-glib-sys" ,rust-glib-sys-0.10)
-        ("rust-gobject-sys" ,rust-gobject-sys-0.10)
+       (("rust-glib-sys" ,rust-glib-sys-0.14)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.14)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-system-deps" ,rust-system-deps-1)
+        ("rust-system-deps" ,rust-system-deps-3)
         ("rust-winapi" ,rust-winapi-0.3))))
     (inputs
      (list glib))
@@ -618,6 +619,27 @@ (define-public rust-gio-sys-0.10
     (description "This package provides FFI bindings to libgio-2.0.")
     (license license:expat)))
 
+(define-public rust-gio-sys-0.10
+  (package
+    (inherit rust-gio-sys-0.14)
+    (name "rust-gio-sys")
+    (version "0.10.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gio-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1b2f6jvghm2djymj3qrgbqfci2f95gyhdin2pgv2qpcg5xszn92y"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-glib-sys" ,rust-glib-sys-0.10)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.10)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-system-deps" ,rust-system-deps-1)
+        ("rust-winapi" ,rust-winapi-0.3))))))
+
 (define-public rust-gio-sys-0.9
   (package
     (inherit rust-gio-sys-0.10)
-- 
2.34.0

From 07316b51d43d0c5a4474ed1f2b46965751addb4f Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 10 Jan 2022 19:36:20 +0100
Subject: [PATCH 10/20] gnu: Add rust-gdk-pixbuf-sys-0.14.

* gnu/packages/crates-gtk.scm (rust-gdk-pixbuf-sys-0.14): New variable.
  (rust-gdk-pixbuf-sys-0.10): Inherit from above.

diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index 1c6c4e555b..073b93b806 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -376,26 +376,27 @@ (define-public rust-gdk-pixbuf-0.7
        #:cargo-development-inputs
        (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
 
-(define-public rust-gdk-pixbuf-sys-0.10
+(define-public rust-gdk-pixbuf-sys-0.14
   (package
     (name "rust-gdk-pixbuf-sys")
-    (version "0.10.0")
+    (version "0.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "gdk-pixbuf-sys" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "13qyxazj9bmw3llvkh6br8v7sypnbin2nxis366ppsa3gy54dziv"))))
+        (base32 "14759y4z2najwv3hpvdqi2qqnz4lqrcdqqhpkkvciyq189qc15zh"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:skip-build?
+       #t
        #:cargo-inputs
-       (("rust-gio-sys" ,rust-gio-sys-0.10)
-        ("rust-glib-sys" ,rust-glib-sys-0.10)
-        ("rust-gobject-sys" ,rust-gobject-sys-0.10)
+       (("rust-gio-sys" ,rust-gio-sys-0.14)
+        ("rust-glib-sys" ,rust-glib-sys-0.14)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.14)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-system-deps" ,rust-system-deps-1))
+        ("rust-system-deps" ,rust-system-deps-3))
        #:cargo-development-inputs
        (("rust-shell-words" ,rust-shell-words-0.1)
         ("rust-tempfile" ,rust-tempfile-3))))
@@ -406,6 +407,30 @@ (define-public rust-gdk-pixbuf-sys-0.10
     (description "This package provides FFI bindings to @code{libgdk_pixbuf-2.0}.")
     (license license:expat)))
 
+(define-public rust-gdk-pixbuf-sys-0.10
+  (package
+    (inherit rust-gdk-pixbuf-sys-0.14)
+    (name "rust-gdk-pixbuf-sys")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gdk-pixbuf-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "13qyxazj9bmw3llvkh6br8v7sypnbin2nxis366ppsa3gy54dziv"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-gio-sys" ,rust-gio-sys-0.10)
+        ("rust-glib-sys" ,rust-glib-sys-0.10)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.10)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-system-deps" ,rust-system-deps-1))
+       #:cargo-development-inputs
+       (("rust-shell-words" ,rust-shell-words-0.1)
+        ("rust-tempfile" ,rust-tempfile-3))))))
+
 (define-public rust-gdk-pixbuf-sys-0.9
   (package
     (inherit rust-gdk-pixbuf-sys-0.10)
-- 
2.34.0

From 48a121a155aee3605a84f769384fcb26edbdb0f0 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 10 Jan 2022 19:21:09 +0100
Subject: [PATCH 06/20] gnu: Add rust-pango-sys-0.14.

* gnu/packages/crates-gtk.scm (rust-pango-sys-0.14): New variable.
  (rust-pango-sys-0.10): Inherit from above.

diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index 9d6951acdd..e9c4ffed06 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -1191,25 +1191,26 @@ (define-public rust-pango-0.7
        #:cargo-development-inputs
        (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
 
-(define-public rust-pango-sys-0.10
+(define-public rust-pango-sys-0.14
   (package
     (name "rust-pango-sys")
-    (version "0.10.0")
+    (version "0.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "pango-sys" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1468xzyk2wanxb2b32fsmwk6bnafdaicxl5b4301dlb2ic66bli4"))))
+        (base32 "1zj236n9kjldf47wwlxvhshwm5zhg589a0fml5mm8qg7lnf0jrr3"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:skip-build?
+       #t
        #:cargo-inputs
-       (("rust-glib-sys" ,rust-glib-sys-0.10)
-        ("rust-gobject-sys" ,rust-gobject-sys-0.10)
+       (("rust-glib-sys" ,rust-glib-sys-0.14)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.14)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-system-deps" ,rust-system-deps-1))))
+        ("rust-system-deps" ,rust-system-deps-3))))
     (inputs
      (list pango))
     (home-page "https://gtk-rs.org/")
@@ -1217,6 +1218,26 @@ (define-public rust-pango-sys-0.10
     (description "This package provides FFI bindings to @code{libpango-1.0}.")
     (license license:expat)))
 
+(define-public rust-pango-sys-0.10
+  (package
+    (inherit rust-pango-sys-0.14)
+    (name "rust-pango-sys")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pango-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1468xzyk2wanxb2b32fsmwk6bnafdaicxl5b4301dlb2ic66bli4"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-glib-sys" ,rust-glib-sys-0.10)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.10)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-system-deps" ,rust-system-deps-1))))))
+
 (define-public rust-pango-sys-0.9
   (package
     (inherit rust-pango-sys-0.10)
-- 
2.34.0

From 1b590015a241c54de26bbabb3d20ee49f2ad2cd6 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 10 Jan 2022 19:51:50 +0100
Subject: [PATCH 14/20] gnu: Add rust-cairo-rs-0.14.

* gnu/packages/crates-gtk.scm (rust-cairo-rs-0.14): New variable.
  (rust-cairo-rs-0.9): Inherit from above.

diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index 92f7c4392c..3aa1dcfc5e 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -139,8 +139,40 @@ (define-public rust-atk-0.8
        #:cargo-development-inputs
        (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
 
+(define-public rust-cairo-rs-0.14
+  (package
+    (name "rust-cairo-rs")
+    (version "0.14.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cairo-rs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "10ml7hxzj6w5k6yjdkcmxx0ds4mnrn9j3bdbk1nmh36vg5cp5d9k"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build?
+       #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.14)
+        ("rust-freetype" ,rust-freetype-0.7)
+        ("rust-glib" ,rust-glib-0.14)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-thiserror" ,rust-thiserror-1))
+       #:cargo-development-inputs
+       (("rust-tempfile" ,rust-tempfile-3))))
+    (inputs
+     (list cairo))
+    (home-page "https://gtk-rs.org/")
+    (synopsis "Rust bindings for the Cairo library")
+    (description "Rust bindings for the Cairo library")
+    (license license:expat)))
+
 (define-public rust-cairo-rs-0.9
   (package
+    (inherit rust-cairo-rs-0.14)
     (name "rust-cairo-rs")
     (version "0.9.1")
     (source
@@ -150,7 +182,6 @@ (define-public rust-cairo-rs-0.9
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1f5x6ipfpzz0ffph0pg0xfkdfcbr0jp59714zz857jp88zhg5h65"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -163,13 +194,7 @@ (define-public rust-cairo-rs-0.9
         ("rust-libc" ,rust-libc-0.2)
         ("rust-thiserror" ,rust-thiserror-1))
        #:cargo-development-inputs
-       (("rust-tempfile" ,rust-tempfile-3))))
-    (inputs
-     (list cairo))
-    (home-page "https://gtk-rs.org/")
-    (synopsis "Rust bindings for the Cairo library")
-    (description "Rust bindings for the Cairo library")
-    (license license:expat)))
+       (("rust-tempfile" ,rust-tempfile-3))))))
 
 (define-public rust-cairo-rs-0.8
   (package
-- 
2.34.0

From d471b435635b36ad2c07a208362e0e4109287d76 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 10 Jan 2022 19:23:16 +0100
Subject: [PATCH 07/20] gnu: Add rust-pango-0.14.

* gnu/packages/crates-gtk.scm (rust-pango-0.14): New variable.
  (rust-pango-0.10): Inherit from above.

diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index e9c4ffed06..3fa14e4324 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -1105,8 +1105,39 @@ (define-public rust-gtk3-macros-0.14
 library.")
     (license license:expat)))
 
+(define-public rust-pango-0.14
+  (package
+    (name "rust-pango")
+    (version "0.14.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pango" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "10c5q8wl9gkjh323whq6pg9yfvr2vmz00f98z1d77jp506cdavsl"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build?
+       #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-glib" ,rust-glib-0.14)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-pango-sys" ,rust-pango-sys-0.14))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
+    (inputs
+     (list pango))
+    (home-page "https://gtk-rs.org/")
+    (synopsis "Rust bindings for the Pango library")
+    (description "Rust bindings for the Pango library")
+    (license license:expat)))
+
 (define-public rust-pango-0.9
   (package
+    (inherit rust-pango-0.14)
     (name "rust-pango")
     (version "0.9.1")
     (source
@@ -1116,7 +1147,6 @@ (define-public rust-pango-0.9
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0f64hynd9vq6966wb66mrg5kq9q371bkhncp37nqrgdyh22hcdwr"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -1129,13 +1159,7 @@ (define-public rust-pango-0.9
         ("rust-once-cell" ,rust-once-cell-1)
         ("rust-pango-sys" ,rust-pango-sys-0.10))
        #:cargo-development-inputs
-       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
-    (inputs
-     (list pango))
-    (home-page "https://gtk-rs.org/")
-    (synopsis "Rust bindings for the Pango library")
-    (description "Rust bindings for the Pango library")
-    (license license:expat)))
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
 
 (define-public rust-pango-0.8
   (package
-- 
2.34.0

From a0c28a1a7c73abfae881c297611ec5b1a69f27a2 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 10 Jan 2022 20:03:09 +0100
Subject: [PATCH 17/20] gnu: Add rust-gdk-sys-0.14.

* gnu/packages/crates-gtk.scm (rust-gdk-sys-0.14): New variable.
  (rust-gdk-sys-0.10): Inherit from above.

diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index 43b3d509fc..7dcfc5df2c 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -572,8 +572,44 @@ (define-public rust-gdk-pixbuf-sys-0.9
        (("rust-shell-words" ,rust-shell-words-0.1)
         ("rust-tempfile" ,rust-tempfile-3))))))
 
+(define-public rust-gdk-sys-0.14
+  (package
+    (name "rust-gdk-sys")
+    (version "0.14.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gdk-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "07hz3gg039sy7iffy2w5srxzsnqf15i3ryxkqfd995k67lyin28f"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build?
+       #t
+       #:cargo-inputs
+       (("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.14)
+        ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.14)
+        ("rust-gio-sys" ,rust-gio-sys-0.14)
+        ("rust-glib-sys" ,rust-glib-sys-0.14)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.14)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pango-sys" ,rust-pango-sys-0.14)
+        ("rust-pkg-config" ,rust-pkg-config-0.3)
+        ("rust-system-deps" ,rust-system-deps-3))
+       #:cargo-development-inputs
+       (("rust-shell-words" ,rust-shell-words-0.1)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (inputs
+     (list cairo gdk-pixbuf gtk+ glib pango))
+    (home-page "https://gtk-rs.org/")
+    (synopsis "FFI bindings to libgdk-3")
+    (description "FFI bindings to libgdk-3")
+    (license license:expat)))
+
 (define-public rust-gdk-sys-0.10
   (package
+    (inherit rust-gdk-sys-0.14)
     (name "rust-gdk-sys")
     (version "0.10.0")
     (source
@@ -598,13 +634,7 @@ (define-public rust-gdk-sys-0.10
         ("rust-system-deps" ,rust-system-deps-1))
        #:cargo-development-inputs
        (("rust-shell-words" ,rust-shell-words-0.1)
-        ("rust-tempfile" ,rust-tempfile-3))))
-    (inputs
-     (list cairo gdk-pixbuf gtk+ glib pango))
-    (home-page "https://gtk-rs.org/")
-    (synopsis "FFI bindings to libgdk-3")
-    (description "FFI bindings to libgdk-3")
-    (license license:expat)))
+        ("rust-tempfile" ,rust-tempfile-3))))))
 
 (define-public rust-gdk-sys-0.9
   (package
-- 
2.34.0

From 16af71cbc5e1c8c4741ecee836d2be1ce8d19cfc Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 10 Jan 2022 19:14:37 +0100
Subject: [PATCH 04/20] gnu: Add rust-gobject-sys-0.14.

* gnu/packages/crates-gtk.scm (rust-gobject-sys-0.14): New variable.
  (rust-gobject-sys-0.10): Inherit from above.

diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index a7f7c72ad4..0b4f6fb677 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -873,24 +873,25 @@ (define-public rust-glib-sys-0.9
        (("rust-shell-words" ,rust-shell-words-0.1)
         ("rust-tempfile" ,rust-tempfile-3))))))
 
-(define-public rust-gobject-sys-0.10
+(define-public rust-gobject-sys-0.14
   (package
     (name "rust-gobject-sys")
-    (version "0.10.0")
+    (version "0.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "gobject-sys" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1311d3zbdhl1g7ibj1iy1650513yrhxbjxgfhazn52ii1jv368cm"))))
+        (base32 "1xf3jiwzrjingq8jr15bjkbv6m5dypzp67cjnm5f7njrjzicm4ma"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:skip-build?
+       #t
        #:cargo-inputs
-       (("rust-glib-sys" ,rust-glib-sys-0.10)
+       (("rust-glib-sys" ,rust-glib-sys-0.14)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-system-deps" ,rust-system-deps-1))
+        ("rust-system-deps" ,rust-system-deps-3))
        #:cargo-development-inputs
        (("rust-shell-words" ,rust-shell-words-0.1)
         ("rust-tempfile" ,rust-tempfile-3))))
@@ -901,6 +902,28 @@ (define-public rust-gobject-sys-0.10
     (description "This package provides FFI bindings to libgobject-2.0.")
     (license license:expat)))
 
+(define-public rust-gobject-sys-0.10
+  (package
+    (inherit rust-gobject-sys-0.14)
+    (name "rust-gobject-sys")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gobject-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1311d3zbdhl1g7ibj1iy1650513yrhxbjxgfhazn52ii1jv368cm"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-glib-sys" ,rust-glib-sys-0.10)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-system-deps" ,rust-system-deps-1))
+       #:cargo-development-inputs
+       (("rust-shell-words" ,rust-shell-words-0.1)
+        ("rust-tempfile" ,rust-tempfile-3))))))
+
 (define-public rust-gobject-sys-0.9
   (package
     (inherit rust-gobject-sys-0.10)
-- 
2.34.0

From e6a2d2adc5e9f219014b3bced1ed730d2fc10ddd Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 10 Jan 2022 20:04:37 +0100
Subject: [PATCH 18/20] gnu: Add rust-gdk-0.14.

* gnu/packages/crates-gtk.scm (rust-gdk-0.14): New variable.
  (rust-gdk-0.13): Inherit from above.

diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index 7dcfc5df2c..c91556a098 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -317,8 +317,42 @@ (define-public rust-cairo-sys-rs-0.9
         ("rust-x11" ,rust-x11-2)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))))
 
+(define-public rust-gdk-0.14
+  (package
+    (name "rust-gdk")
+    (version "0.14.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gdk" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0fwkm4glh7cici6yd96qlddyp4s2l029wa1sgh6xxn00zkf4kmxr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build?
+       #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cairo-rs" ,rust-cairo-rs-0.14)
+        ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.14)
+        ("rust-gdk-sys" ,rust-gdk-sys-0.14)
+        ("rust-gio" ,rust-gio-0.14)
+        ("rust-glib" ,rust-glib-0.14)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pango" ,rust-pango-0.14))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
+    (inputs
+     (list cairo gdk-pixbuf glib gtk+ pango))
+    (home-page "https://gtk-rs.org/")
+    (synopsis "Rust bindings for the GDK 3 library")
+    (description "This package provides Rust bindings for the GDK 3 library.")
+    (license license:expat)))
+
 (define-public rust-gdk-0.13
   (package
+    (inherit rust-gdk-0.14)
     (name "rust-gdk")
     (version "0.13.2")
     (source
@@ -328,7 +362,6 @@ (define-public rust-gdk-0.13
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0zbb9bwg2z9vlcjj9b59qch3mfmszsrxya7syc5a39v85adq606v"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -346,13 +379,7 @@ (define-public rust-gdk-0.13
         ("rust-libc" ,rust-libc-0.2)
         ("rust-pango" ,rust-pango-0.9))
        #:cargo-development-inputs
-       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
-    (inputs
-     (list cairo gdk-pixbuf glib gtk+ pango))
-    (home-page "https://gtk-rs.org/")
-    (synopsis "Rust bindings for the GDK 3 library")
-    (description "This package provides Rust bindings for the GDK 3 library.")
-    (license license:expat)))
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
 
 (define-public rust-gdk-0.12
   (package
-- 
2.34.0

From fa35b03bcfbde4754190f229dad65b7d5e61a8b9 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 10 Jan 2022 20:01:32 +0100
Subject: [PATCH 16/20] gnu: Add rust-gdk-pixbuf-0.14.

* gnu/packages/crates-gtk.scm (rust-gdk-pixbuf-0.14): New variable.
  (rust-gdk-pixbuf-0.9): Inherit from above.

diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index 3aa1dcfc5e..43b3d509fc 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -384,8 +384,38 @@ (define-public rust-gdk-0.12
        #:cargo-development-inputs
        (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
 
+(define-public rust-gdk-pixbuf-0.14
+  (package
+    (name "rust-gdk-pixbuf")
+    (version "0.14.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gdk-pixbuf" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "03xi6pi0h9jwkxvja18k75x5pblsiym4p39cmf7ypnh1iz5r4hak"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build?
+       #t
+       #:cargo-inputs
+       (("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.14)
+        ("rust-gio" ,rust-gio-0.14)
+        ("rust-glib" ,rust-glib-0.14)
+        ("rust-libc" ,rust-libc-0.2))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
+    (inputs
+     (list gdk-pixbuf))
+    (home-page "https://gtk-rs.org/")
+    (synopsis "Rust bindings for the GdkPixbuf library")
+    (description "Rust bindings for the GdkPixbuf library")
+    (license license:expat)))
+
 (define-public rust-gdk-pixbuf-0.9
   (package
+    (inherit rust-gdk-pixbuf-0.14)
     (name "rust-gdk-pixbuf")
     (version "0.9.0")
     (source
@@ -395,7 +425,6 @@ (define-public rust-gdk-pixbuf-0.9
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "12lrk7zwshid8dgx9vg87bk0h4a0ilpi7w48idsrpm4xp4yawvcg"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -408,13 +437,7 @@ (define-public rust-gdk-pixbuf-0.9
         ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1)
         ("rust-libc" ,rust-libc-0.2))
        #:cargo-development-inputs
-       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
-    (inputs
-     (list gdk-pixbuf))
-    (home-page "https://gtk-rs.org/")
-    (synopsis "Rust bindings for the GdkPixbuf library")
-    (description "Rust bindings for the GdkPixbuf library")
-    (license license:expat)))
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
 
 (define-public rust-gdk-pixbuf-0.8
   (package
-- 
2.34.0

From 03926651ebbe7b139dd28aa6c07b6f6605b9dcdf Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 10 Jan 2022 19:48:41 +0100
Subject: [PATCH 13/20] gnu: Add rust-cairo-sys-rs-0.14.

* gnu/packages/crates-gtk.scm (rust-cairo-sys-rs-0.14): New variable.
  (rust-cairo-sys-rs-0.10): Inherit from above.

diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index d6d6df555d..92f7c4392c 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -223,24 +223,25 @@ (define-public rust-cairo-rs-0.7
        #:cargo-development-inputs
        (("rust-tempfile" ,rust-tempfile-3))))))
 
-(define-public rust-cairo-sys-rs-0.10
+(define-public rust-cairo-sys-rs-0.14
   (package
     (name "rust-cairo-sys-rs")
-    (version "0.10.0")
+    (version "0.14.9")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "cairo-sys-rs" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "19wch8zc11hbi724mn16hhqyff8kw5c5bsbdlzpxdwfmkadn7lif"))))
+        (base32 "0w3md4xk87ign30wb3rqfmmj0q6pvg5arbm35flgsd08jxvbhj5l"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:skip-build?
+       #t
        #:cargo-inputs
-       (("rust-glib-sys" ,rust-glib-sys-0.10)
+       (("rust-glib-sys" ,rust-glib-sys-0.14)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-system-deps" ,rust-system-deps-1)
+        ("rust-system-deps" ,rust-system-deps-3)
         ("rust-winapi" ,rust-winapi-0.3)
         ("rust-x11" ,rust-x11-2))))
     (inputs
@@ -250,6 +251,27 @@ (define-public rust-cairo-sys-rs-0.10
     (description "This package provides FFI bindings to libcairo.")
     (license license:expat)))
 
+(define-public rust-cairo-sys-rs-0.10
+  (package
+    (inherit rust-cairo-sys-rs-0.14)
+    (name "rust-cairo-sys-rs")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cairo-sys-rs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "19wch8zc11hbi724mn16hhqyff8kw5c5bsbdlzpxdwfmkadn7lif"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-glib-sys" ,rust-glib-sys-0.10)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-system-deps" ,rust-system-deps-1)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-x11" ,rust-x11-2))))))
+
 (define-public rust-cairo-sys-rs-0.9
   (package
     (inherit rust-cairo-sys-rs-0.10)
-- 
2.34.0

From 82168a787c5721d5f8791d02577b6e2cc5d822d4 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 10 Jan 2022 19:45:32 +0100
Subject: [PATCH 12/20] gnu: Add rust-atk-0.14.

* gnu/packages/crates-gtk.scm (rust-atk-0.14): New variable.
  (rust-atk-0.8): Inherit from above.

diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index 1e7fb053ad..d6d6df555d 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -86,8 +86,38 @@ (define-public rust-atk-sys-0.9
        (("rust-shell-words" ,rust-shell-words-0.1)
         ("rust-tempfile" ,rust-tempfile-3))))))
 
+(define-public rust-atk-0.14
+  (package
+    (name "rust-atk")
+    (version "0.14.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "atk" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1fi6f3k1lgd0iymar58hp88k76fm5pd1npi2avdn9r3mmb922fx8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build?
+       #t
+       #:cargo-inputs
+       (("rust-atk-sys" ,rust-atk-sys-0.14)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-glib" ,rust-glib-0.14)
+        ("rust-libc" ,rust-libc-0.2))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
+    (inputs
+     (list atk glib))
+    (home-page "https://gtk-rs.org/")
+    (synopsis "Rust bindings for the ATK library")
+    (description "Rust bindings for the ATK library")
+    (license license:expat)))
+
 (define-public rust-atk-0.8
   (package
+    (inherit rust-atk-0.14)
     (name "rust-atk")
     (version "0.8.0")
     (source
@@ -97,7 +127,6 @@ (define-public rust-atk-0.8
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0gk6ijqsd6kh8cki1wznw570499psbppg3d5bqaayagjapxawka4"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-atk-sys" ,rust-atk-sys-0.9)
@@ -108,13 +137,7 @@ (define-public rust-atk-0.8
         ("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1)
         ("rust-libc" ,rust-libc-0.2))
        #:cargo-development-inputs
-       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
-    (inputs
-     (list atk glib))
-    (home-page "https://gtk-rs.org/")
-    (synopsis "Rust bindings for the ATK library")
-    (description "Rust bindings for the ATK library")
-    (license license:expat)))
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
 
 (define-public rust-cairo-rs-0.9
   (package
-- 
2.34.0

From fbc7a8a09a44d2fc3b7fe770f8d51e7dd4878e40 Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 10 Jan 2022 19:42:41 +0100
Subject: [PATCH 11/20] gnu: Add rust-atk-sys-0.14.

* gnu/packages/crates-gtk.scm (rust-atk-sys-0.14): New variable.
  (rust-atk-sys-0.9): Inherit from above.

diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index 073b93b806..1e7fb053ad 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -27,14 +27,45 @@ (define-module (gnu packages crates-gtk)
   #:use-module (gnu packages crates-io)
   #:use-module (gnu packages crates-graphics)
   #:use-module (gnu packages glib)
-  #:use-module (gnu packages gtk))
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages pkg-config))
 
 ;;;
 ;;; Please: Try to add new module packages in alphabetic order.
 ;;;
+(define-public rust-atk-sys-0.14
+  (package
+    (name "rust-atk-sys")
+    (version "0.14.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "atk-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1sl3pqfb2jaf9kcfxj9k43d7iv8gcl5zgdgn3j5vp13w2mqgdp5s"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                      ; missing files
+       #:cargo-inputs
+       (("rust-glib-sys" ,rust-glib-sys-0.14)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.14)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-system-deps" ,rust-system-deps-3))
+       #:cargo-development-inputs
+       (("rust-shell-words" ,rust-shell-words-1)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (native-inputs (list pkg-config))
+    (inputs
+     (list atk glib))
+    (home-page "https://gtk-rs.org/")
+    (synopsis "FFI bindings to libatk-1")
+    (description "FFI bindings to libatk-1")
+    (license license:expat)))
 
 (define-public rust-atk-sys-0.9
   (package
+    (inherit rust-atk-sys-0.14)
     (name "rust-atk-sys")
     (version "0.9.1")
     (source
@@ -44,7 +75,6 @@ (define-public rust-atk-sys-0.9
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0vzcm1inhax78bcsbapr6mrp4z7lk783csyh200wi91pcxvw2lp5"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:tests? #f                      ;missing files
        #:cargo-inputs
@@ -54,13 +84,7 @@ (define-public rust-atk-sys-0.9
         ("rust-pkg-config" ,rust-pkg-config-0.3))
        #:cargo-development-inputs
        (("rust-shell-words" ,rust-shell-words-0.1)
-        ("rust-tempfile" ,rust-tempfile-3))))
-    (inputs
-     (list atk glib))
-    (home-page "https://gtk-rs.org/")
-    (synopsis "FFI bindings to libatk-1")
-    (description "FFI bindings to libatk-1")
-    (license license:expat)))
+        ("rust-tempfile" ,rust-tempfile-3))))))
 
 (define-public rust-atk-0.8
   (package
-- 
2.34.0

From f10519cf2c5a337e94740875749549aa58f6d68b Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 10 Jan 2022 19:56:11 +0100
Subject: [PATCH 15/20] gnu: Add rust-field-offset-0.3.

* gnu/packages/crates-io.scm (rust-field-offset-0.3): New variable.

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 15e67d5561..8efebb7648 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -19124,6 +19124,30 @@ (define-public rust-filetime-0.2
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-field-offset-0.3
+  (package
+    (name "rust-field-offset")
+    (version "0.3.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "field-offset" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "14pvxz7yr0r3mlhaf65zva3r9d0kqid01wdw7ngx7jsh2jam870y"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build?
+       #t
+       #:cargo-inputs
+       (("rust-memoffset" ,rust-memoffset-0.6)
+        ("rust-rustc-version" ,rust-rustc-version-0.3))))
+    (home-page "https://github.com/Diggsey/rust-field-offset")
+    (synopsis "Safe pointer-to-member implementation")
+    (description "This package provides safe pointer-to-member
+implementation.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-findshlibs-0.5
   (package
     (name "rust-findshlibs")
-- 
2.34.0

From 769014afbf1f7679fc639c10c815946a5adfb6fc Mon Sep 17 00:00:00 2001
From: Petr Hodina <[email-masked]>
Date: Mon, 10 Jan 2022 19:33:12 +0100
Subject: [PATCH 09/20] gnu: Add rust-gio-0.14.

* gnu/packages/crates-gtk.scm (rust-gio-0.14): New variable.
  (rust-gio-0.9): Inherit from above.

diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index d0431f53df..1c6c4e555b 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -491,8 +491,44 @@ (define-public rust-gdk-sys-0.9
        (("rust-shell-words" ,rust-shell-words-0.1)
         ("rust-tempfile" ,rust-tempfile-3))))))
 
+(define-public rust-gio-0.14
+  (package
+    (name "rust-gio")
+    (version "0.14.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gio" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1c2w47mznpplr3mmhgs4m4nlkv8gs4c182cwi9brbl7bncr3c73i"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build?
+       #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-futures-channel" ,rust-futures-channel-0.3)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-io" ,rust-futures-io-0.3)
+        ("rust-gio-sys" ,rust-gio-sys-0.14)
+        ("rust-glib" ,rust-glib-0.14)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-thiserror" ,rust-thiserror-1))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1)
+        ("rust-serial-test" ,rust-serial-test-0.4))))
+    (inputs
+     (list glib))
+    (home-page "https://gtk-rs.org/")
+    (synopsis "Rust bindings for the Gio library")
+    (description "Rust bindings for the Gio library")
+    (license license:expat)))
+
 (define-public rust-gio-0.9
   (package
+    (inherit rust-gio-0.14)
     (name "rust-gio")
     (version "0.9.1")
     (source
@@ -502,7 +538,6 @@ (define-public rust-gio-0.9
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0qc5aqi2ijval5i9df0qryy4wbmayyhy7ng5v9r0fw7zpx105dhz"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -522,13 +557,7 @@ (define-public rust-gio-0.9
         ("rust-thiserror" ,rust-thiserror-1))
        #:cargo-development-inputs
        (("rust-gir-format-check" ,rust-gir-format-check-0.1)
-        ("rust-serial-test" ,rust-serial-test-0.4))))
-    (inputs
-     (list glib))
-    (home-page "https://gtk-rs.org/")
-    (synopsis "Rust bindings for the Gio library")
-    (description "Rust bindings for the Gio library")
-    (license license:expat)))
+        ("rust-serial-test" ,rust-serial-test-0.4))))))
 
 (define-public rust-gio-0.8
   (package
-- 
2.34.0