all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Franz Geffke <m@f-a.nz>
To: 70772@debbugs.gnu.org
Cc: Franz Geffke <m@f-a.nz>, Efraim Flashner <efraim@flashner.co.il>
Subject: [bug#70772] [PATCH] gnu: Add rust-serialport
Date: Sat,  4 May 2024 15:46:33 +0100	[thread overview]
Message-ID: <6b33aa66caf9a6854564c359c559018e23ba9185.1714833993.git.m@f-a.nz> (raw)

Change-Id: I7935aab748ffd86569cac0af2e91da02323c4123
---
 gnu/packages/crates-io.scm                    | 132 ++++++++++++++++++
 .../rust-serialport-remove-macos.patch        |  17 +++
 2 files changed, 149 insertions(+)
 create mode 100644 gnu/packages/patches/rust-serialport-remove-macos.patch

diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index a67d3d74bb..35cb1028df 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -3862,6 +3862,24 @@ (define-public rust-assert2-macros-0.3
     (description "This package provides procedural macros for assert2.")
     (license license:bsd-2)))
 
+(define-public rust-assert-hex-0.4
+  (package
+    (name "rust-assert_hex")
+    (version "0.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "assert_hex" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "19xwlhz2swak1gw6rv38wai7d1xn9l3mspnv1fl8rz7h60a0y0gp"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/wcampbell0x2a/assert_hex")
+    (synopsis "Display assert panics in hexadecimal format")
+    (description
+     "Rust library to display assert panics in hexadecimal format")
+    (license license:expat)))
+
 (define-public rust-associative-cache-1
   (package
     (name "rust-associative-cache")
@@ -34763,6 +34781,64 @@ (define-public rust-libz-ng-sys-1
 high-performance zlib library.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-libudev-sys-0.1
+  (package
+    (name "rust-libudev-sys")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "libudev-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "09236fdzlx9l0dlrsc6xx21v5x8flpfm3d5rjq9jr5ivlas6k11w"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2))
+       #:cargo-development-inputs
+       (("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (native-inputs
+     (list pkg-config
+           eudev))
+    (home-page "https://github.com/dcuddeback/libudev-rs")
+    (synopsis "Rust wrapper for libudev")
+    (description
+     "This crate provides a safe wrapper around the native libudev library.")
+    (license license:expat)))
+
+(define-public rust-libudev-0.3
+  (package
+    (name "rust-libudev")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "libudev" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1q1my5alvdwyi8i9pc9gn2mcx5rhbsssmz5cjnxzfpd65laj9cvq"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (substitute* "Cargo.toml"
+             (("0.1.3") "0.1.4"))))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-libudev-sys" ,rust-libudev-sys-0.1))
+       #:cargo-development-inputs
+        (("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (native-inputs
+     (list pkg-config
+           eudev))
+    (home-page "https://github.com/dcuddeback/libudev-rs")
+    (synopsis "Rust wrapper for libudev")
+    (description
+     "This crate provides a safe wrapper around the native libudev library.")
+    (license license:expat)))
+
 (define-public rust-lifeguard-0.6
   (package
     (name "rust-lifeguard")
@@ -61303,6 +61379,41 @@ (define-public rust-serial-test-0.4
     (description "Serialising Rust tests")
     (license license:expat)))
 
+(define-public rust-serialport-4
+  (package
+    (name "rust-serialport")
+    (version "4.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serialport" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0a380655dqrl16wfqnr75zxk3f8h3fshjjr68r4gh3clpv81anlg"))
+       (patches (search-patches "rust-serialport-remove-macos.patch"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-2)
+        ("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-libudev" ,rust-libudev-0.3)
+        ("rust-nix" ,rust-nix-0.26)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-scopeguard" ,rust-scopeguard-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-unescaper" ,rust-unescaper-0.1))
+       #:cargo-development-inputs (("rust-assert-hex" ,rust-assert-hex-0.4)
+                                   ("rust-clap" ,rust-clap-3))))
+    (native-inputs
+     (list pkg-config
+           eudev))
+    (home-page "https://github.com/serialport/serialport-rs")
+    (synopsis "A cross-platform serial port library in Rust.")
+    (description
+     "A cross-platform serial port library in Rust. Provides a blocking I/O
+interface and port enumeration including USB device information.")
+    (license license:expat)))
+
 (define-public rust-servo-fontconfig-0.5
   (package
     (name "rust-servo-fontconfig")
@@ -74909,6 +75020,27 @@ (define-public rust-unescape-0.1
      "Unescapes strings with escape sequences written out as literal characters.")
     (license license:expat)))
 
+(define-public rust-unescaper-0.1
+  (package
+    (name "rust-unescaper")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "unescaper" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0d4xi16mindhksi3lqvn0kzzgj5az9qbgxqmz7gwmcxm5v9nmpqa"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-thiserror" ,rust-thiserror-1))))
+    (home-page "https://github.com/hack-ink/unescaper")
+    (synopsis "Unescape strings with escape sequences.")
+    (description
+     "Unescape strings with escape sequences written out as literal characters.")
+    (license license:expat)))
+
 (define-public rust-ungrammar-1
   (package
     (name "rust-ungrammar")
diff --git a/gnu/packages/patches/rust-serialport-remove-macos.patch b/gnu/packages/patches/rust-serialport-remove-macos.patch
new file mode 100644
index 0000000000..5f779a78df
--- /dev/null
+++ b/gnu/packages/patches/rust-serialport-remove-macos.patch
@@ -0,0 +1,17 @@
+--- serialport-4.3.0/Cargo.toml	2024-05-01 16:01:21.986121155 +0100
++++ serialport-4.3.0/Cargo.toml	2024-05-01 16:00:38.874019301 +0100
+@@ -57,15 +57,6 @@ optional = true
+ [target."cfg(all(target_os = \"linux\", not(target_env = \"musl\")))".dependencies.unescaper]
+ version = "0.1.3"
+
+-[target."cfg(any(target_os = \"ios\", target_os = \"macos\"))".dependencies.core-foundation-sys]
+-version = "0.8.4"
+-
+-[target."cfg(any(target_os = \"ios\", target_os = \"macos\"))".dependencies.io-kit-sys]
+-version = "0.4.0"
+-
+-[target."cfg(any(target_os = \"ios\", target_os = \"macos\"))".dependencies.mach2]
+-version = "0.4.1"
+-
+ [target."cfg(unix)".dependencies.bitflags]
+ version = "2.4.0"
\ No newline at end of file

base-commit: 9e184d5e54d1fee98c75bcb577a98456a77ae015
-- 
2.41.0





             reply	other threads:[~2024-05-04 14:58 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-04 14:46 Franz Geffke [this message]
2024-05-13  7:13 ` [bug#70772] [PATCH] gnu: Add rust-serialport Nicolas Graves via Guix-patches via

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6b33aa66caf9a6854564c359c559018e23ba9185.1714833993.git.m@f-a.nz \
    --to=m@f-a.nz \
    --cc=70772@debbugs.gnu.org \
    --cc=efraim@flashner.co.il \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.