summaryrefslogtreecommitdiff
path: root/gnu/packages/rust-apps.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/rust-apps.scm')
-rw-r--r--gnu/packages/rust-apps.scm183
1 files changed, 181 insertions, 2 deletions
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index 024be3f141..25cb83243a 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -97,11 +97,13 @@
#:use-module (gnu packages libunwind)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
+ #:use-module (gnu packages libffi)
#:use-module (gnu packages networking)
#:use-module (gnu packages ninja)
#:use-module (gnu packages shells)
#:use-module (gnu packages ssh)
#:use-module (gnu packages pcre)
+ #:use-module (gnu packages pdf)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf)
@@ -109,13 +111,16 @@
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages ruby-xyz)
#:use-module (gnu packages rust)
#:use-module (gnu packages sqlite)
+ #:use-module (gnu packages terminals)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
#:use-module (gnu packages tree-sitter)
#:use-module (gnu packages version-control)
#:use-module (gnu packages webkit)
+ #:use-module (gnu packages video)
#:use-module (gnu packages xorg))
(define-public aardvark-dns
@@ -2092,6 +2097,71 @@ respecting your gitignore rules. @code{ripgrep} is similar to other popular
search tools like The Silver Searcher, @command{ack} and @command{grep}.")
(license (list license:unlicense license:expat))))
+(define-public ripgrep-all
+ (package
+ (name "ripgrep-all")
+ (version "0.10.9")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/phiresky/ripgrep-all")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1cks8b9z8fl1rs2xgklgsis79w9bylfmxxvns2adwsiilkpsxzxg"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list
+ #:install-source? #f
+ #:modules
+ '((srfi srfi-26)
+ (guix build utils)
+ (guix build cargo-build-system))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'install 'wrap-with-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (for-each
+ (lambda (bin)
+ (wrap-program bin
+ `("PATH" ":" prefix
+ (,(string-join
+ (map (compose dirname
+ (cut search-input-file inputs <>))
+ '("bin/ffmpeg"
+ "bin/fzf"
+ "bin/pandoc"
+ "bin/pdfinfo"
+ "bin/rg"
+ "bin/zip"))
+ ":")))))
+ (find-files (string-append #$output "/bin"))))))))
+ (native-inputs
+ (list pkg-config xz))
+ (inputs
+ (cons* ffmpeg
+ fzf
+ pandoc
+ poppler
+ ripgrep
+ sqlite
+ zip
+ `(,zstd "lib")
+ (cargo-inputs 'ripgrep-all)))
+ (home-page "https://github.com/phiresky/ripgrep-all")
+ (synopsis "Line-oriented search tool for text and binary formats")
+ (description
+ "@command{rga} is a line-oriented search tool for searching in both text
+and binary formats. It is a wrapper for @code{ripgrep} with adapters for common
+binary formats, enabling it to search in multitude of file types: pdf, docx,
+sqlite, jpg, movie subtitles (mkv, mp4), etc.
+
+This package also supports adding custom adapters in its configuration file,
+matching for mime types or extensions and executing arbitrary executables for
+the parsing.")
+ (license license:agpl3+)))
+
(define-public rot8
(package
(name "rot8")
@@ -2114,6 +2184,49 @@ associated input devices using the built-in accelerometer; handy for convertible
touchscreen devices.")
(license license:expat)))
+(define-public rusty
+ (let ((commit "ce6892169b4c4d8b924eaf4323db4564f722064c")
+ (revision "0"))
+ (package
+ (name "rusty")
+ (version (git-version "0.2.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/PLC-lang/rusty")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0m0g4xpwb43bh5vzlx9vp69rnhsry6bz8yn0xsvmsa9iwak4sgm5"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list
+ #:install-source? #f
+ #:cargo-install-paths
+ ''("compiler/plc_driver")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'set-cc
+ ;; Tests assume `cc' is avaliable in PATH, but Guix does not
+ ;; provide that with the `gcc' or `clang' packages.
+ (lambda _
+ (substitute* '("tests/integration/build_description_tests.rs"
+ "compiler/plc_driver/src/cli.rs"
+ "xtask/src/task.rs" "xtask/src/main.rs")
+ (("([=\"])cc(\")" _ prefix suffix)
+ (string-append prefix #$(cc-for-target) suffix))))))))
+ (inputs (cons* libffi lld-14 llvm-14
+ (cargo-inputs 'rusty)))
+ (native-inputs (list lld-wrapper))
+ (home-page "https://plc-lang.github.io/rusty/")
+ (synopsis "IEC 61131-3 structured text compiler")
+ (description
+ "RuSTy is a IEC 61131-3 @acronym{ST, Structured Text} compiler written in
+Rust. It compiles ST down to native machine code, targeting most
+@code{llvm}-supported targets.")
+ (license (list license:lgpl3 license:gpl3)))))
+
(define-public rust-swc
(package
(name "rust-swc")
@@ -2907,7 +3020,7 @@ runs a command whenever it detects modifications.")
(define-public rbw
(package
(name "rbw")
- (version "1.13.2")
+ (version "1.14.1")
(outputs '("out" "scripts"))
(source
(origin
@@ -2915,7 +3028,7 @@ runs a command whenever it detects modifications.")
(uri (crate-uri "rbw" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1plwv71iwdcdprknsn32x7wzlg1hnikq3wqbym4yiwpk5kf6anmm"))))
+ (base32 "1d4pxj3jjrgbvldpxsbq05h13cx1bc6yxhhwxa0rp58bkj6qh3ah"))))
(build-system cargo-build-system)
(arguments
`(#:install-source? #f
@@ -3731,6 +3844,72 @@ policies, and so on.
@end itemize")
(license (list license:asl2.0 license:expat))))
+(define-public radicle
+ (package
+ (name "radicle")
+ (version "1.3.0")
+ (source
+ (origin
+ (method url-fetch/tarbomb)
+ (uri (string-append
+ "https://files.radicle.xyz/releases/"
+ version "/heartwood-" version ".tar.gz"))
+ (sha256
+ (base32 "1rf18h8kjw4v1crnxppmrcyxkm28q3mzqk8xyngagg6mdfs0cijq"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (for-each delete-file
+ (find-files "build" "^macos-sdk"))
+ (substitute* (find-files "." "^Cargo\\.toml$")
+ (("\"vendored-libgit2\"")
+ ""))))))
+ (build-system cargo-build-system)
+ (arguments
+ (list
+ #:install-source? #f
+ ;; Parallel testing will open too many files
+ #:parallel-tests? #f
+ #:cargo-install-paths ''("crates/radicle-cli"
+ "crates/radicle-node"
+ "crates/radicle-remote-helper")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'setenv
+ (lambda _
+ (setenv "RADICLE_VERSION" #$(package-version this-package))
+ (setenv "LIBGIT2_NO_VENDOR" "1")
+ (setenv "HOME" (getcwd))
+ (setenv "TMPDIR" "/tmp")))
+ #$@(if (this-package-native-input "ruby-asciidoctor")
+ #~((add-before 'build 'build-doc
+ (lambda _
+ (apply invoke "scripts/build-man-pages.sh" "."
+ (find-files "." "\\.adoc$"))
+ (let ((man1 (string-append #$output "/share/man/man1")))
+ (mkdir-p man1)
+ (for-each (lambda (file)
+ (install-file file man1))
+ (find-files "." "\\.1$"))))))
+ #~()))))
+ (native-inputs
+ (append
+ (if (supported-package? ruby-asciidoctor)
+ (list ruby-asciidoctor)
+ '())
+ (list pkg-config
+ ;; for test
+ git)))
+ (inputs (cons* libgit2-1.8 sqlite (cargo-inputs 'radicle)))
+ (home-page "https://radicle.xyz/")
+ (synopsis "Peer-to-peer code collaboration stack")
+ (description
+ "Radicle is a peer-to-peer code collaboration stack built on Git. Unlike
+centralized code hosting platforms, there is no single entity controlling the
+network. Repositories are replicated across peers in a decentralized manner,
+and users are in full control of their data and workflow.")
+ (license (list license:asl2.0 license:expat))))
+
(define-public rust-xremap
(package
(name "rust-xremap")