Subject: [PATCH 52/81] gnu: Add rust-h3-0.0.4.

From: Herman Rimm <[email-masked]>
Date: Mon, 20 May 2024 10:58:57 +0200

* gnu/packages/crates-web.scm (rust-h3-0.0.4): Add variable.
(rust-h3-0.0.3): Inherit from rust-h3-0.0.4.

Change-Id: I9d6cae92e738b2d0e27a6885237daf5b9c1e6cd2
---
 gnu/packages/crates-web.scm | 59 +++++++++++++++++++++++++++++++++----
 1 file changed, 53 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/crates-web.scm b/gnu/packages/crates-web.scm
index 12706984ab..30df5dd9fa 100644
--- a/gnu/packages/crates-web.scm
+++ b/gnu/packages/crates-web.scm
@@ -2558,8 +2558,60 @@ (define-public rust-h2-0.1
         ("rust-webpki" ,rust-webpki-0.21)
         ("rust-webpki-roots" ,rust-webpki-roots-0.17))))))
 
+(define-public rust-h3-0.0.4
+  (package
+    (name "rust-h3")
+    (version "0.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "h3" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+          "04clhh6b5iqlgnbppikbz4zpxl78g4vkyhyrjgnyg4vfkrmqij5i"))
+       (modules '((guix build utils)))
+       (snippet '(begin
+                   (substitute* "src/tests/mod.rs"
+                     (("../h3-quinn")
+                      "guix-vendor/rust-h3-quinn-0.0.5.tar.gz"))
+                   (substitute* "Cargo.toml"
+                     (("\"tls-rustls\"")
+                      "\"tls-rustls\",\n\"futures-io\""))))))
+    (build-system cargo-build-system)
+    (arguments
+     (list
+      #:cargo-test-flags
+      `(list "release" "--"
+             "--skip=server_and_client_should_connect_successfully")
+      #:cargo-inputs (list rust-bytes-1
+                           rust-fastrand-2
+                           rust-futures-util-0.3
+                           rust-http-1
+                           rust-pin-project-lite-0.2
+                           rust-tokio-1
+                           rust-tracing-0.1)
+      #:cargo-development-inputs (list rust-assert-matches-1
+                                       rust-futures-0.3
+                                       rust-futures-util-0.3
+                                       rust-h3-quinn-0.0.5
+                                       rust-proptest-1
+                                       rust-quinn-0.10
+                                       rust-quinn-proto-0.10
+                                       rust-rcgen-0.11
+                                       rust-rustls-0.21
+                                       rust-tokio-1
+                                       rust-tokio-util-0.7
+                                       rust-tracing-subscriber-0.3)))
+    (home-page "https://github.com/hyperium/h3")
+    (synopsis "Async HTTP/3 implementation")
+    (description
+      "This package provides an async HTTP/3 implementation.")
+    (license license:expat)))
+
 (define-public rust-h3-0.0.3
   (package
+    (inherit rust-h3-0.0.4)
     (name "rust-h3")
     (version "0.0.3")
     (source
@@ -2569,7 +2621,6 @@ (define-public rust-h3-0.0.3
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "101vg73galsyk5gnjb49cjb6q40c9z2npcdxpfsj99ky2waijgmq"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:tests? #f      ; Not all files included
        #:cargo-inputs
@@ -2591,11 +2642,7 @@ (define-public rust-h3-0.0.3
         ("rust-rustls" ,rust-rustls-0.21)
         ("rust-tokio" ,rust-tokio-1)
         ("rust-tokio-util" ,rust-tokio-util-0.7)
-        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))))
-    (home-page "https://github.com/hyperium/h3")
-    (synopsis "Async HTTP/3 implementation")
-    (description "This package provides an async HTTP/3 implementation.")
-    (license license:expat)))
+        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))))))
 
 (define-public rust-h3-0.0.2
   (package
-- 
2.41.0