diff options
Diffstat (limited to 'gnu/packages/rust-apps.scm')
-rw-r--r-- | gnu/packages/rust-apps.scm | 183 |
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") |