Merge branch 'master' into core-updates-frozen
[jackhill/guix/guix.git] / gnu / packages / rust-apps.scm
index 03646ee..3225703 100644 (file)
@@ -34,6 +34,7 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix packages)
+  #:use-module (gnu packages admin)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crates-io)
   #:use-module (gnu packages crates-graphics)
@@ -42,6 +43,7 @@
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages jemalloc)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages pkg-config)
@@ -88,14 +90,14 @@ low-end hardware and serving many concurrent requests.")
 (define-public bat
   (package
     (name "bat")
-    (version "0.18.1")
+    (version "0.18.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "bat" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0nvqkddpjxsmd27gqn8czql07faad50mihin5ivb9sxxnni28wnc"))))
+        (base32 "0qlk032dd6zxda1v7clah33nafxygaw3x7f73ajwlvk956nrn1js"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -104,7 +106,6 @@ low-end hardware and serving many concurrent requests.")
         ("rust-atty" ,rust-atty-0.2)
         ("rust-bugreport" ,rust-bugreport-0.4)
         ("rust-clap" ,rust-clap-2)
-        ("rust-clap" ,rust-clap-2)
         ("rust-clircle" ,rust-clircle-0.3)
         ("rust-console" ,rust-console-0.14)
         ("rust-content-inspector" ,rust-content-inspector-0.2)
@@ -113,6 +114,7 @@ low-end hardware and serving many concurrent requests.")
         ("rust-error-chain" ,rust-error-chain-0.12)
         ("rust-git2" ,rust-git2-0.13)
         ("rust-globset" ,rust-globset-0.4)
+        ("rust-grep-cli" ,rust-grep-cli-0.1)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-path-abs" ,rust-path-abs-0.5)
         ("rust-semver" ,rust-semver-0.11)
@@ -124,7 +126,7 @@ low-end hardware and serving many concurrent requests.")
         ("rust-wild" ,rust-wild-2))
        #:cargo-development-inputs
        (("rust-assert-cmd" ,rust-assert-cmd-1)
-        ("rust-nix" ,rust-nix-0.20)
+        ("rust-nix" ,rust-nix-0.21)
         ("rust-predicates" ,rust-predicates-1)
         ("rust-serial-test" ,rust-serial-test-0.5)
         ("rust-tempfile" ,rust-tempfile-3)
@@ -377,6 +379,66 @@ for distinguishing different kinds of bytes such as NULL bytes, printable ASCII
 characters, ASCII whitespace characters, other ASCII characters and non-ASCII.")
     (license (list license:expat license:asl2.0))))
 
+(define-public hyperfine
+  (package
+    (name "hyperfine")
+    (version "1.11.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "hyperfine" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0m5lrvx6wwkxqdc5digm1k4diiaqcg5j4pia77s5nw1aam7k51hy"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:modules ((guix build cargo-build-system)
+                  (guix build utils)
+                  (srfi srfi-26))
+       #:cargo-inputs
+       (("rust-atty" ,rust-atty-0.2)
+        ("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-clap" ,rust-clap-2)
+        ("rust-colored" ,rust-colored-2)
+        ("rust-csv" ,rust-csv-1)
+        ("rust-indicatif" ,rust-indicatif-0.15)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-rust-decimal" ,rust-rust-decimal-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-statistical" ,rust-statistical-1)
+        ("rust-version-check" ,rust-version-check-0.9)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-approx" ,rust-approx-0.3))
+       #:phases
+       (modify-phases %standard-phases
+        (add-after 'install 'install-more
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let* ((out   (assoc-ref outputs "out"))
+                   (share (string-append out "/share/"))
+                   (man   (string-append share "man/man1"))
+                   (bash  (string-append share "bash-completion/completions"))
+                   (fish  (string-append share "fish/vendor_completions.d"))
+                   (zsh   (string-append share "zsh/site-functions")))
+              (install-file "doc/hyperfine.1" man)
+              (for-each (cut install-file <> bash)
+                        (find-files "target/release/build" "^hyperfine.bash$"))
+              (rename-file (string-append bash "/hyperfine.bash")
+                           (string-append bash "/hyperfine"))
+              (for-each (cut install-file <> fish)
+                        (find-files "target/release/build" "^hyperfine.fish$"))
+              (for-each (cut install-file <> zsh)
+                        (find-files "target/release/build" "^_hyperfine$"))))))))
+    (home-page "https://github.com/sharkdp/hyperfine")
+    (synopsis "Command-line benchmarking tool")
+    (description
+     "This package provides a command-line benchmarking tool.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public ripgrep
   (package
     (name "ripgrep")
@@ -584,17 +646,71 @@ gitignore rules.")
          (base32
           "13jzbmjz1bmmfr0i80hw6ar484mgabx3hbpb2ynhk0ddqi0yr58m"))))))
 
+(define-public sniffglue
+  (package
+    (name "sniffglue")
+    (version "0.12.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "sniffglue" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1q1kwkw1hq38qgvc6j4b5l9m85a6lpn1jls4bm27c5kha9cg8l24"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ansi-term" ,rust-ansi-term-0.12)
+        ("rust-anyhow" ,rust-anyhow-1)
+        ("rust-atty" ,rust-atty-0.2)
+        ("rust-base64" ,rust-base64-0.13)
+        ("rust-dhcp4r" ,rust-dhcp4r-0.2)
+        ("rust-dirs-next" ,rust-dirs-next-2)
+        ("rust-dns-parser" ,rust-dns-parser-0.8)
+        ("rust-env-logger" ,rust-env-logger-0.8)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-nix" ,rust-nix-0.20)
+        ("rust-nom" ,rust-nom-6)
+        ("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-pcap-sys" ,rust-pcap-sys-0.1)
+        ("rust-pktparse" ,rust-pktparse-0.5)
+        ("rust-reduce" ,rust-reduce-0.1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-sha2" ,rust-sha2-0.9)
+        ("rust-structopt" ,rust-structopt-0.3)
+        ("rust-syscallz" ,rust-syscallz-0.15)
+        ("rust-tls-parser" ,rust-tls-parser-0.10)
+        ("rust-toml" ,rust-toml-0.5)
+        ("rust-users" ,rust-users-0.11))
+       #:cargo-development-inputs
+       (("rust-boxxy" ,rust-boxxy-0.11))))
+    (inputs
+     `(("libpcap" ,libpcap)
+       ("libseccomp" ,libseccomp)))
+    (home-page "https://github.com/kpcyrd/sniffglue")
+    (synopsis "Secure multithreaded packet sniffer")
+    (description
+     "This package provides a network sniffer written in Rust.  Packets
+are parsed concurrently using a thread pool to utilize all cpu cores.  A goal
+of the project is to be runnable on untrusted networks without crashing.")
+    (license license:gpl3)))
+
 (define-public tectonic
   (package
     (name "tectonic")
-    (version "0.6.2")
+    (version "0.7.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tectonic" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "13wkpsbpqf6yf00jrjvs8bb9r32bk49r9f3q2yh1xlb7fyb8lkcp"))))
+        (base32 "0rjkfmbam81anpdqs2qafcmd5bf7y898c8a7iqqqwkbl1hfw4sqs"))))
     (build-system cargo-build-system)
     (arguments
      `(#:rust ,rust-1.52
@@ -610,6 +726,7 @@ gitignore rules.")
         ("rust-libc" ,rust-libc-0.2)
         ("rust-md-5" ,rust-md-5-0.9)
         ("rust-open" ,rust-open-1)
+        ("rust-quick-xml" ,rust-quick-xml-0.22)
         ("rust-serde" ,rust-serde-1)
         ("rust-sha2" ,rust-sha2-0.9)
         ("rust-structopt" ,rust-structopt-0.3)