Subject: [bug#74767] [PATCH rust-team 23/23] gnu: Add py-spy.

From: Maxim Cournoyer <[email-masked]>
Date: Tue, 10 Dec 2024 23:21:26 +0900

* gnu/packages/rust-apps.scm (py-spy): New variable.

Change-Id: I41876fd3c83da27cece7c0fe4812248c3c4467df
Series-postfix: PATCH rust-team
---
 gnu/packages/rust-apps.scm | 51 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index eb43ca8d23..2bd8db2565 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -91,6 +91,7 @@ (define-module (gnu packages rust-apps)
   #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages kde)
   #:use-module (gnu packages libusb)
+  #:use-module (gnu packages libunwind)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages networking)
@@ -2144,6 +2145,56 @@ (define-public rust-py-spy-testdata-0.1
      (description "This package provides Python coredumps for testing py-spy.")
      (license license:expat))))
 
+(define-public py-spy
+  (package
+    (name "py-spy")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "py-spy" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0fvdmrqp4qand1zb9cwks8hpkysdqajrdh9y7ks15c78985k1x64"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-anyhow" ,rust-anyhow-1)
+                       ("rust-chrono" ,rust-chrono-0.4)
+                       ("rust-clap" ,rust-clap-3)
+                       ("rust-clap-complete" ,rust-clap-complete-3)
+                       ("rust-console" ,rust-console-0.15)
+                       ("rust-cpp-demangle" ,rust-cpp-demangle-0.4)
+                       ("rust-ctrlc" ,rust-ctrlc-3)
+                       ("rust-env-logger" ,rust-env-logger-0.10)
+                       ("rust-goblin" ,rust-goblin-0.9)
+                       ("rust-indicatif" ,rust-indicatif-0.17)
+                       ("rust-inferno" ,rust-inferno-0.11)
+                       ("rust-lazy-static" ,rust-lazy-static-1)
+                       ("rust-libc" ,rust-libc-0.2)
+                       ("rust-log" ,rust-log-0.4)
+                       ("rust-lru" ,rust-lru-0.10)
+                       ("rust-memmap2" ,rust-memmap2-0.9)
+                       ("rust-num-traits" ,rust-num-traits-0.2)
+                       ("rust-proc-maps" ,rust-proc-maps-0.4)
+                       ("rust-rand" ,rust-rand-0.8)
+                       ("rust-rand-distr" ,rust-rand-distr-0.4)
+                       ("rust-regex" ,rust-regex-1)
+                       ("rust-remoteprocess" ,rust-remoteprocess-0.5)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-serde-derive" ,rust-serde-derive-1)
+                       ("rust-serde-json" ,rust-serde-json-1)
+                       ("rust-tempfile" ,rust-tempfile-3)
+                       ("rust-termios" ,rust-termios-0.3)
+                       ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs (("rust-py-spy-testdata" ,rust-py-spy-testdata-0.1))))
+    (native-inputs (list python-minimal-wrapper))
+    (inputs (list libunwind))
+    (home-page "https://github.com/benfred/py-spy")
+    (synopsis "Sampling profiler for Python programs")
+    (description
+     "This package provides Sampling profiler for Python programs.")
+    (license license:expat)))
+
 (define-public ripgrep
   (package
     (name "ripgrep")
-- 
2.46.0