rust-apps.scm 69 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793
  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2019, 2020 John Soo <jsoo1@asu.edu>
  3. ;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
  4. ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
  5. ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
  6. ;;; Copyright © 2020 Leo Famulari <leo@famulari.name>
  7. ;;; Copyright © 2020 Mark H Weaver <mhw@netris.org>
  8. ;;; Copyright © 2020 Gabriel Arazas <foo.dogsquared@gmail.com>
  9. ;;; Copyright © 2020-2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
  10. ;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
  11. ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.ccom>
  12. ;;; Copyright © 2021, 2022 Zheng Junjie <873216071@qq.com>
  13. ;;; Copyright © 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro>
  14. ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
  15. ;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
  16. ;;; Copyright © 2021 jgart <jgart@dismail.de>
  17. ;;; Copyright © 2021 Nicolas Graves <ngraves@ngraves.fr>
  18. ;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org>
  19. ;;;
  20. ;;; This file is part of GNU Guix.
  21. ;;;
  22. ;;; GNU Guix is free software; you can redistribute it and/or modify it
  23. ;;; under the terms of the GNU General Public License as published by
  24. ;;; the Free Software Foundation; either version 3 of the License, or (at
  25. ;;; your option) any later version.
  26. ;;;
  27. ;;; GNU Guix is distributed in the hope that it will be useful, but
  28. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  29. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  30. ;;; GNU General Public License for more details.
  31. ;;;
  32. ;;; You should have received a copy of the GNU General Public License
  33. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
  34. (define-module (gnu packages rust-apps)
  35. #:use-module ((guix licenses) #:prefix license:)
  36. #:use-module (guix build-system cargo)
  37. #:use-module (guix download)
  38. #:use-module (guix git-download)
  39. #:use-module (guix packages)
  40. #:use-module (guix utils)
  41. #:use-module (gnu packages)
  42. #:use-module (gnu packages admin)
  43. #:use-module (gnu packages base)
  44. #:use-module (gnu packages bash)
  45. #:use-module (gnu packages compression)
  46. #:use-module (gnu packages crates-io)
  47. #:use-module (gnu packages crates-graphics)
  48. #:use-module (gnu packages curl)
  49. #:use-module (gnu packages documentation)
  50. #:use-module (gnu packages fontutils)
  51. #:use-module (gnu packages freedesktop)
  52. #:use-module (gnu packages glib)
  53. #:use-module (gnu packages gtk)
  54. #:use-module (gnu packages ibus)
  55. #:use-module (gnu packages icu4c)
  56. #:use-module (gnu packages image)
  57. #:use-module (gnu packages jemalloc)
  58. #:use-module (gnu packages kde)
  59. #:use-module (gnu packages linux)
  60. #:use-module (gnu packages networking)
  61. #:use-module (gnu packages ssh)
  62. #:use-module (gnu packages pcre)
  63. #:use-module (gnu packages pkg-config)
  64. #:use-module (gnu packages pulseaudio)
  65. #:use-module (gnu packages python-xyz)
  66. #:use-module (gnu packages rust)
  67. #:use-module (gnu packages tls)
  68. #:use-module (gnu packages version-control)
  69. #:use-module (gnu packages webkit)
  70. #:use-module (gnu packages xorg))
  71. (define-public agate
  72. (package
  73. (name "agate")
  74. (version "2.5.2")
  75. (source
  76. (origin
  77. (method url-fetch)
  78. (uri (crate-uri "agate" version))
  79. (file-name (string-append name "-" version ".tar.gz"))
  80. (sha256
  81. (base32 "1mhrl4j5r6wzsnwpqsbgzny5vqschyjm3gnk4y88har7skk7j19v"))))
  82. (build-system cargo-build-system)
  83. (arguments
  84. `(#:cargo-inputs
  85. (("rust-configparser" ,rust-configparser-2)
  86. ("rust-env-logger" ,rust-env-logger-0.8)
  87. ("rust-getopts" ,rust-getopts-0.2)
  88. ("rust-glob" ,rust-glob-0.3)
  89. ("rust-log" ,rust-log-0.4)
  90. ("rust-mime-guess" ,rust-mime-guess-2)
  91. ("rust-once-cell" ,rust-once-cell-1)
  92. ("rust-percent-encoding" ,rust-percent-encoding-2)
  93. ("rust-rustls" ,rust-rustls-0.19)
  94. ("rust-tokio" ,rust-tokio-1)
  95. ("rust-tokio-rustls" ,rust-tokio-rustls-0.22)
  96. ("rust-url" ,rust-url-2))))
  97. (home-page "https://github.com/mbrubeck/agate")
  98. (synopsis "Very simple server for the Gemini hypertext protocol")
  99. (description
  100. "Agate is a server for the Gemini network protocol, built with the Rust
  101. programming language. It has very few features, and can only serve static
  102. files. It uses async I/O, and should be quite efficient even when running on
  103. low-end hardware and serving many concurrent requests.")
  104. (license (list license:expat license:asl2.0))))
  105. (define-public alfis
  106. (package
  107. (name "alfis")
  108. (version "0.6.10")
  109. (source
  110. (origin
  111. (method git-fetch)
  112. (uri (git-reference
  113. (url "https://github.com/Revertron/Alfis")
  114. (commit (string-append "v" version))))
  115. (file-name (git-file-name name version))
  116. (sha256
  117. (base32 "1kgzz92mkyzn7mbsdpik1q21kl38i4almn01k99nww3p0vgx9514"))))
  118. (build-system cargo-build-system)
  119. (arguments
  120. `(#:cargo-test-flags
  121. '("--release" "--"
  122. "--skip=dns::client::tests::test_tcp_client"
  123. "--skip=dns::client::tests::test_udp_client")
  124. #:cargo-inputs
  125. (("rust-getopts" ,rust-getopts-0.2)
  126. ("rust-log" ,rust-log-0.4)
  127. ("rust-simplelog" ,rust-simplelog-0.11)
  128. ("rust-toml" ,rust-toml-0.5)
  129. ("rust-digest" ,rust-digest-0.10)
  130. ("rust-sha2" ,rust-sha2-0.10)
  131. ("rust-ed25519-dalek" ,rust-ed25519-dalek-1)
  132. ("rust-x25519-dalek" ,rust-x25519-dalek-1)
  133. ("rust-ecies-ed25519" ,rust-ecies-ed25519-0.5)
  134. ("rust-chacha20poly1305" ,rust-chacha20poly1305-0.9)
  135. ("rust-signature" ,rust-signature-1)
  136. ("rust-blakeout" ,rust-blakeout-0.3)
  137. ("rust-num-cpus" ,rust-num-cpus-1)
  138. ("rust-byteorder" ,rust-byteorder-1)
  139. ("rust-serde" ,rust-serde-1)
  140. ("rust-serde-json" ,rust-serde-json-1)
  141. ("rust-bincode" ,rust-bincode-1)
  142. ("rust-serde-cbor" ,rust-serde-cbor-0.11)
  143. ("rust-base64" ,rust-base64-0.13)
  144. ("rust-num-bigint" ,rust-num-bigint-0.4)
  145. ("rust-num-traits" ,rust-num-traits-0.2)
  146. ("rust-chrono" ,rust-chrono-0.4)
  147. ("rust-rand" ,rust-rand-0.8)
  148. ("rust-rand-0.7" ,rust-rand-0.7) ;For ed25519-dalek
  149. ("rust-sqlite" ,rust-sqlite-0.26)
  150. ("rust-uuid" ,rust-uuid-0.8)
  151. ("rust-mio" ,rust-mio-0.8)
  152. ("rust-ureq" ,rust-ureq-2)
  153. ("rust-lru" ,rust-lru-0.7)
  154. ("rust-derive-more" ,rust-derive-more-0.99)
  155. ("rust-lazy-static" ,rust-lazy-static-1)
  156. ("rust-tinyfiledialogs" ,rust-tinyfiledialogs-3)
  157. ("rust-web-view" ,rust-web-view-0.7)
  158. ("rust-open" ,rust-open-2)
  159. ("rust-thread-priority" ,rust-thread-priority-0.4)
  160. ("rust-winres" ,rust-winres-0.1))
  161. #:cargo-development-inputs
  162. (("rust-serde-bytes" ,rust-serde-bytes-0.11)
  163. ("rust-serde-derive" ,rust-serde-derive-1))))
  164. (native-inputs
  165. (list pkg-config))
  166. (inputs
  167. (list atk
  168. gtk
  169. glib
  170. pango
  171. webkitgtk-with-libsoup2))
  172. (home-page "https://github.com/Revertron/Alfis")
  173. (synopsis "Alternative Free Identity System")
  174. (description
  175. "This project represents a minimal blockchain without cryptocurrency,
  176. capable of sustaining any number of domain names in a bunch of original
  177. alternative zones.")
  178. (license license:agpl3+)))
  179. (define-public bat
  180. (package
  181. (name "bat")
  182. (version "0.20.0")
  183. (source
  184. (origin
  185. (method url-fetch)
  186. (uri (crate-uri "bat" version))
  187. (file-name (string-append name "-" version ".tar.gz"))
  188. (sha256
  189. (base32 "05sj0chxpai26fhk1k7p5m54v3j7n1x64ayx53mcimsj1skdr77m"))))
  190. (build-system cargo-build-system)
  191. (arguments
  192. `(#:cargo-inputs
  193. (("rust-ansi-colours" ,rust-ansi-colours-1)
  194. ("rust-ansi-term" ,rust-ansi-term-0.12)
  195. ("rust-atty" ,rust-atty-0.2)
  196. ("rust-bincode" ,rust-bincode-1)
  197. ("rust-bugreport" ,rust-bugreport-0.4)
  198. ("rust-bytesize" ,rust-bytesize-1)
  199. ("rust-clap" ,rust-clap-2)
  200. ("rust-clap" ,rust-clap-2)
  201. ("rust-clircle" ,rust-clircle-0.3)
  202. ("rust-console" ,rust-console-0.15)
  203. ("rust-content-inspector" ,rust-content-inspector-0.2)
  204. ("rust-dirs-next" ,rust-dirs-next-2)
  205. ("rust-encoding" ,rust-encoding-0.2)
  206. ("rust-flate2" ,rust-flate2-1)
  207. ("rust-git2" ,rust-git2-0.13)
  208. ("rust-globset" ,rust-globset-0.4)
  209. ("rust-grep-cli" ,rust-grep-cli-0.1)
  210. ("rust-once-cell" ,rust-once-cell-1)
  211. ("rust-path-abs" ,rust-path-abs-0.5)
  212. ("rust-regex" ,rust-regex-1)
  213. ("rust-semver" ,rust-semver-1)
  214. ("rust-serde" ,rust-serde-1)
  215. ("rust-serde-yaml" ,rust-serde-yaml-0.8)
  216. ("rust-shell-words" ,rust-shell-words-1)
  217. ("rust-syntect" ,rust-syntect-4)
  218. ("rust-thiserror" ,rust-thiserror-1)
  219. ("rust-unicode-width" ,rust-unicode-width-0.1)
  220. ("rust-walkdir" ,rust-walkdir-2)
  221. ("rust-wild" ,rust-wild-2))
  222. #:cargo-development-inputs
  223. (("rust-assert-cmd" ,rust-assert-cmd-2)
  224. ("rust-nix" ,rust-nix-0.23)
  225. ("rust-predicates" ,rust-predicates-2)
  226. ("rust-serial-test" ,rust-serial-test-0.5)
  227. ("rust-tempfile" ,rust-tempfile-3)
  228. ("rust-wait-timeout" ,rust-wait-timeout-0.2))))
  229. (native-inputs
  230. (list pkg-config))
  231. (inputs
  232. (list libgit2 zlib))
  233. (home-page "https://github.com/sharkdp/bat")
  234. (synopsis "@command{cat} clone with syntax highlighting and git integration")
  235. (description
  236. "@command{bat} is a drop-in @command{cat} replacement featuring syntax
  237. highlighting for a large number of languages, git integration, and automatic
  238. paging.")
  239. (license (list license:expat license:asl2.0))))
  240. (define-public diffr
  241. (package
  242. (name "diffr")
  243. (version "0.1.4")
  244. (source
  245. (origin
  246. (method url-fetch)
  247. (uri (crate-uri "diffr" version))
  248. (file-name (string-append name "-" version ".tar.gz"))
  249. (sha256
  250. (base32 "1b0mz1ki2ksxni6g49x5l5j9ijpyhc11mywvxr9i9h3nr098nc5l"))))
  251. (build-system cargo-build-system)
  252. (arguments
  253. `(#:install-source? #f
  254. ;; https://github.com/mookid/diffr/issues/79
  255. #:cargo-test-flags
  256. '("--release" "--"
  257. "--skip=tests::success"
  258. "--skip=test_cli::color_invalid_attribute_name"
  259. "--skip=test_cli::color_invalid_color_not_done"
  260. "--skip=test_cli::color_invalid_color_value_ansi"
  261. "--skip=test_cli::color_invalid_color_value_name"
  262. "--skip=test_cli::color_invalid_color_value_rgb"
  263. "--skip=test_cli::color_invalid_face_name"
  264. "--skip=test_cli::color_ok"
  265. "--skip=test_cli::color_ok_multiple"
  266. "--skip=test_cli::color_only_face_name"
  267. "--skip=test_cli::debug_flag")
  268. #:cargo-inputs
  269. (("rust-atty" ,rust-atty-0.2)
  270. ("rust-clap" ,rust-clap-2)
  271. ("rust-diffr-lib" ,rust-diffr-lib-0.1)
  272. ("rust-termcolor" ,rust-termcolor-1))))
  273. (home-page "https://github.com/mookid/diffr")
  274. (synopsis "Longest Common Sequence based diff highlighting tool")
  275. (description
  276. "This package provides an @acronym{LCS, longest common sequence} based diff
  277. highlighting tool to ease code review from your terminal.")
  278. (license license:expat)))
  279. (define-public drill
  280. (package
  281. (name "drill")
  282. (version "0.7.1")
  283. (source
  284. (origin
  285. (method url-fetch)
  286. (uri (crate-uri "drill" version))
  287. (file-name (string-append name "-" version ".tar.gz"))
  288. (sha256
  289. (base32 "1m73d7rzi0p5c1hn0081d2235kcyapdza7h0vqf5jhnirpnjn793"))))
  290. (build-system cargo-build-system)
  291. (arguments
  292. `(#:cargo-inputs
  293. (("rust-async-trait" ,rust-async-trait-0.1)
  294. ("rust-clap" ,rust-clap-2)
  295. ("rust-colored" ,rust-colored-1)
  296. ("rust-csv" ,rust-csv-1)
  297. ("rust-futures" ,rust-futures-0.3)
  298. ("rust-lazy-static" ,rust-lazy-static-1)
  299. ("rust-linked-hash-map" ,rust-linked-hash-map-0.5)
  300. ("rust-num-cpus" ,rust-num-cpus-1)
  301. ("rust-rand" ,rust-rand-0.7)
  302. ("rust-regex" ,rust-regex-1)
  303. ("rust-reqwest" ,rust-reqwest-0.10)
  304. ("rust-serde" ,rust-serde-1)
  305. ("rust-serde-json" ,rust-serde-json-1)
  306. ("rust-tokio" ,rust-tokio-0.2)
  307. ("rust-url" ,rust-url-2)
  308. ("rust-yaml-rust" ,rust-yaml-rust-0.4))))
  309. (native-inputs
  310. (list pkg-config))
  311. (inputs
  312. (list openssl))
  313. (home-page "https://github.com/fcsonline/drill")
  314. (synopsis "HTTP load testing application")
  315. (description
  316. "Drill is a HTTP load testing application written in Rust inspired by
  317. Ansible syntax. Benchmark files can be written in YAML.")
  318. (license license:gpl3)))
  319. (define-public dutree
  320. (package
  321. (name "dutree")
  322. (version "0.2.18")
  323. (source
  324. (origin
  325. (method url-fetch)
  326. (uri (crate-uri "dutree" version))
  327. (file-name (string-append name "-" version ".tar.gz"))
  328. (sha256
  329. (base32 "1611h27i8fm3jndscd6w65z8z7w09nnrm61vdgs9kb8ln57gqm8x"))))
  330. (build-system cargo-build-system)
  331. (arguments
  332. `(#:install-source? #f
  333. #:cargo-inputs
  334. (("rust-getopts" ,rust-getopts-0.2)
  335. ("rust-regex" ,rust-regex-1)
  336. ("rust-signal-hook" ,rust-signal-hook-0.1)
  337. ("rust-terminal-size" ,rust-terminal-size-0.1)
  338. ("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
  339. ("rust-unicode-width" ,rust-unicode-width-0.1))))
  340. (home-page "https://ownyourbits.com/2018/03/25/analyze-disk-usage-with-dutree/")
  341. (synopsis "Command line tool to analyze disk usage")
  342. (description
  343. "@command{dutree} is command line tool to analyze disk usage.
  344. Features include:
  345. @enumerate
  346. @item coloured output, according to the @code{LS_COLORS} environment variable.
  347. @item display the file system tree.
  348. @item ability to aggregate small files.
  349. @item ability to exclude files or directories.
  350. @item ability to compare different directories.
  351. @item fast, written in Rust.
  352. @end enumerate\n")
  353. (license license:gpl3)))
  354. (define-public exa
  355. (package
  356. (name "exa")
  357. (version "0.9.0")
  358. (source
  359. (origin
  360. (method url-fetch)
  361. (uri (crate-uri "exa" version))
  362. (file-name
  363. (string-append name "-" version ".tar.gz"))
  364. (sha256
  365. (base32
  366. "1s902xgplz1167k0r7x235p914lprpsqy2if0kpa1mlb0fswqqq4"))))
  367. (build-system cargo-build-system)
  368. (arguments
  369. `(#:cargo-inputs
  370. (("rust-ansi-term" ,rust-ansi-term-0.12)
  371. ("rust-datetime" ,rust-datetime-0.4)
  372. ("rust-env-logger" ,rust-env-logger-0.6)
  373. ("rust-git2" ,rust-git2-0.9)
  374. ("rust-glob" ,rust-glob-0.3)
  375. ("rust-lazy-static" ,rust-lazy-static-1)
  376. ("rust-libc" ,rust-libc-0.2)
  377. ("rust-locale" ,rust-locale-0.2)
  378. ("rust-log" ,rust-log-0.4)
  379. ("rust-natord" ,rust-natord-1)
  380. ("rust-num-cpus" ,rust-num-cpus-1)
  381. ("rust-number-prefix" ,rust-number-prefix-0.3)
  382. ("rust-scoped-threadpool" ,rust-scoped-threadpool-0.1)
  383. ("rust-term-grid" ,rust-term-grid-0.1)
  384. ("rust-term-size" ,rust-term-size-0.3)
  385. ("rust-unicode-width" ,rust-unicode-width-0.1)
  386. ("rust-users" ,rust-users-0.9)
  387. ("rust-zoneinfo-compiled" ,rust-zoneinfo-compiled-0.4))
  388. #:cargo-development-inputs
  389. (("rust-datetime" ,rust-datetime-0.4))
  390. #:phases
  391. (modify-phases %standard-phases
  392. ;; Ignoring failing tests.
  393. ;; Reported in https://github.com/ogham/exa/issues/318
  394. (add-before 'check 'disable-failing-tests
  395. (lambda _
  396. (substitute* "src/options/mod.rs"
  397. (("^.*fn oneline_across.*" oneline-across)
  398. (string-append "#[ignore]\n" oneline-across)))
  399. (substitute* "src/options/view.rs"
  400. (("test!\\(across:.*") "")
  401. (("test!\\(cr:.*") "")
  402. (("test!\\(empty:.*") "")
  403. (("test!\\(gracross:.*") "")
  404. (("test!\\(grid:.*") "")
  405. (("test!\\(icons:.*") "")
  406. (("test!\\(just_binary:.*") "")
  407. (("test!\\(just_blocks:.*") "")
  408. (("test!\\(just_bytes:.*") "")
  409. (("test!\\(just_git:.*") "")
  410. (("test!\\(just_group:.*") "")
  411. (("test!\\(just_header:.*") "")
  412. (("test!\\(just_inode:.*") "")
  413. (("test!\\(just_links:.*") "")
  414. (("test!\\(leg:.*") "")
  415. (("test!\\(lid:.*") "")
  416. (("test!\\(original_g:.*") ""))
  417. #t))
  418. (add-after 'install 'install-extras
  419. (lambda* (#:key outputs #:allow-other-keys)
  420. (let* ((out (assoc-ref outputs "out"))
  421. (share (string-append out "/share"))
  422. (man1 (string-append share "/man/man1")))
  423. (install-file "contrib/man/exa.1" man1)
  424. (mkdir-p (string-append out "/etc/bash_completion.d"))
  425. (mkdir-p (string-append share "/fish/vendor_completions.d"))
  426. (mkdir-p (string-append share "/zsh/site-functions"))
  427. (copy-file "contrib/completions.bash"
  428. (string-append out "/etc/bash_completion.d/exa"))
  429. (copy-file "contrib/completions.fish"
  430. (string-append share "/fish/vendor_completions.d/exa.fish"))
  431. (copy-file "contrib/completions.zsh"
  432. (string-append share "/zsh/site-functions/_exa"))
  433. #t))))))
  434. (inputs
  435. (list libgit2 zlib))
  436. (native-inputs
  437. (list pkg-config))
  438. (home-page "https://the.exa.website/")
  439. (synopsis "Modern replacement for ls")
  440. (description "@code{exa} is a modern replacement for the command-line
  441. program @code{ls}. It uses colours to distinguish file types and metadata. It
  442. also knows about symlinks, extended attributes, and Git.")
  443. (license license:expat)))
  444. (define-public fd
  445. (package
  446. (name "fd")
  447. (version "8.1.1")
  448. (source
  449. (origin
  450. (method url-fetch)
  451. (uri (crate-uri "fd-find" version))
  452. (file-name
  453. (string-append name "-" version ".tar.gz"))
  454. (sha256
  455. (base32
  456. "124a5r8hpk2phs1288jybh34d48yxy44wr7gv5ggchs272gs2jam"))))
  457. (build-system cargo-build-system)
  458. (arguments
  459. `(#:cargo-inputs
  460. (("rust-ansi-term" ,rust-ansi-term-0.12)
  461. ("rust-anyhow" ,rust-anyhow-1)
  462. ("rust-atty" ,rust-atty-0.2)
  463. ("rust-clap" ,rust-clap-2)
  464. ("rust-ctrlc" ,rust-ctrlc-3)
  465. ("rust-dirs" ,rust-dirs-2)
  466. ("rust-globset" ,rust-globset-0.4)
  467. ("rust-humantime" ,rust-humantime-2)
  468. ("rust-ignore" ,rust-ignore-0.4)
  469. ("rust-jemallocator" ,rust-jemallocator-0.3)
  470. ("rust-lazy-static" ,rust-lazy-static-1)
  471. ("rust-libc" ,rust-libc-0.2)
  472. ("rust-lscolors" ,rust-lscolors-0.7)
  473. ("rust-num-cpus" ,rust-num-cpus-1)
  474. ("rust-regex" ,rust-regex-1)
  475. ("rust-regex-syntax" ,rust-regex-syntax-0.6)
  476. ("rust-users" ,rust-users-0.10)
  477. ("rust-version-check" ,rust-version-check-0.9))
  478. #:cargo-development-inputs
  479. (("rust-diff" ,rust-diff-0.1)
  480. ("rust-filetime" ,rust-filetime-0.2)
  481. ("rust-tempdir" ,rust-tempdir-0.3))
  482. #:phases
  483. (modify-phases %standard-phases
  484. (add-after 'unpack 'override-jemalloc
  485. (lambda* (#:key inputs #:allow-other-keys)
  486. (let ((jemalloc (assoc-ref inputs "jemalloc")))
  487. (setenv "JEMALLOC_OVERRIDE"
  488. (string-append jemalloc "/lib/libjemalloc.so")))
  489. #t))
  490. (add-after 'install 'install-extra
  491. (lambda* (#:key outputs #:allow-other-keys)
  492. (let* ((out (assoc-ref outputs "out"))
  493. (install-completion
  494. (lambda (completion out-dir)
  495. (for-each
  496. (lambda (f)
  497. (install-file f (string-append out out-dir)))
  498. (find-files "target/release/build/" completion)))))
  499. ;; Manpages
  500. (install-file "doc/fd.1" (string-append out "/share/man/man1"))
  501. ;; Completions
  502. (install-completion "^fd.bash$" "/etc/bash_completion.d")
  503. (install-completion "^fd.fish$" "/share/fish/vendor_completions.d")
  504. (install-completion "^_fd$" "/share/zsh/site-functions")
  505. (rename-file (string-append out "/etc/bash_completion.d/fd.bash")
  506. (string-append out "/etc/bash_completion.d/fd"))
  507. #t))))))
  508. (inputs (list jemalloc))
  509. (home-page "https://github.com/sharkdp/fd")
  510. (synopsis "Simple, fast and user-friendly alternative to find")
  511. (description
  512. "@code{fd} is a simple, fast and user-friendly alternative to @code{find}.
  513. While it does not seek to mirror all of find's powerful functionality, it
  514. provides defaults for 80% of the use cases.")
  515. (license (list license:expat license:asl2.0))))
  516. (define-public hexyl
  517. (package
  518. (name "hexyl")
  519. (version "0.8.0")
  520. (source
  521. (origin
  522. (method url-fetch)
  523. (uri (crate-uri "hexyl" version))
  524. (file-name
  525. (string-append name "-" version ".tar.gz"))
  526. (sha256
  527. (base32
  528. "0sipag77196467idbznbk5q5lwhqz85zw7y1pwg9b27jxqyk04rp"))))
  529. (build-system cargo-build-system)
  530. (arguments
  531. `(#:cargo-inputs
  532. (("rust-ansi-term" ,rust-ansi-term-0.12)
  533. ("rust-atty" ,rust-atty-0.2)
  534. ("rust-clap" ,rust-clap-2)
  535. ("rust-libc" ,rust-libc-0.2))))
  536. (home-page "https://github.com/sharkdp/hexyl")
  537. (synopsis "Command-line hex viewer")
  538. (description
  539. "This package provides a command line hex viewer. It uses a colored output
  540. for distinguishing different kinds of bytes such as NULL bytes, printable ASCII
  541. characters, ASCII whitespace characters, other ASCII characters and non-ASCII.")
  542. (license (list license:expat license:asl2.0))))
  543. (define-public hyperfine
  544. (package
  545. (name "hyperfine")
  546. (version "1.11.0")
  547. (source
  548. (origin
  549. (method url-fetch)
  550. (uri (crate-uri "hyperfine" version))
  551. (file-name
  552. (string-append name "-" version ".tar.gz"))
  553. (sha256
  554. (base32
  555. "0m5lrvx6wwkxqdc5digm1k4diiaqcg5j4pia77s5nw1aam7k51hy"))))
  556. (build-system cargo-build-system)
  557. (arguments
  558. `(#:modules ((guix build cargo-build-system)
  559. (guix build utils)
  560. (srfi srfi-26))
  561. #:cargo-inputs
  562. (("rust-atty" ,rust-atty-0.2)
  563. ("rust-cfg-if" ,rust-cfg-if-0.1)
  564. ("rust-clap" ,rust-clap-2)
  565. ("rust-colored" ,rust-colored-2)
  566. ("rust-csv" ,rust-csv-1)
  567. ("rust-indicatif" ,rust-indicatif-0.15)
  568. ("rust-libc" ,rust-libc-0.2)
  569. ("rust-rand" ,rust-rand-0.7)
  570. ("rust-rust-decimal" ,rust-rust-decimal-1)
  571. ("rust-serde" ,rust-serde-1)
  572. ("rust-serde-json" ,rust-serde-json-1)
  573. ("rust-statistical" ,rust-statistical-1)
  574. ("rust-version-check" ,rust-version-check-0.9)
  575. ("rust-winapi" ,rust-winapi-0.3))
  576. #:cargo-development-inputs
  577. (("rust-approx" ,rust-approx-0.3))
  578. #:phases
  579. (modify-phases %standard-phases
  580. (add-after 'install 'install-more
  581. (lambda* (#:key outputs #:allow-other-keys)
  582. (let* ((out (assoc-ref outputs "out"))
  583. (share (string-append out "/share/"))
  584. (man (string-append share "man/man1"))
  585. (bash (string-append share "bash-completion/completions"))
  586. (fish (string-append share "fish/vendor_completions.d"))
  587. (zsh (string-append share "zsh/site-functions")))
  588. (install-file "doc/hyperfine.1" man)
  589. (for-each (cut install-file <> bash)
  590. (find-files "target/release/build" "^hyperfine.bash$"))
  591. (rename-file (string-append bash "/hyperfine.bash")
  592. (string-append bash "/hyperfine"))
  593. (for-each (cut install-file <> fish)
  594. (find-files "target/release/build" "^hyperfine.fish$"))
  595. (for-each (cut install-file <> zsh)
  596. (find-files "target/release/build" "^_hyperfine$"))))))))
  597. (home-page "https://github.com/sharkdp/hyperfine")
  598. (synopsis "Command-line benchmarking tool")
  599. (description
  600. "This package provides a command-line benchmarking tool.")
  601. (license (list license:expat license:asl2.0))))
  602. (define-public i3status-rust
  603. (package
  604. (name "i3status-rust")
  605. (version "0.20.1")
  606. (source
  607. (origin
  608. (method git-fetch)
  609. (uri (git-reference
  610. (url "https://github.com/greshake/i3status-rust")
  611. (commit (string-append "v" version))))
  612. (file-name (git-file-name name version))
  613. (patches (search-patches "i3status-rust-enable-unstable-features.patch"))
  614. (sha256
  615. (base32 "00gzm3g297s9bfp13vnb623p7dfac3g6cdhz2b3lc6l0kmnnqs1s"))))
  616. (build-system cargo-build-system)
  617. (arguments
  618. `(#:features '("pulseaudio" "libpulse-binding")
  619. #:install-source? #f
  620. #:cargo-inputs
  621. (("rust-chrono" ,rust-chrono-0.4)
  622. ("rust-chrono-tz" ,rust-chrono-tz-0.5)
  623. ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5)
  624. ("rust-curl" ,rust-curl-0.4)
  625. ("rust-dbus" ,rust-dbus-0.9)
  626. ("rust-dbus-tree" ,rust-dbus-tree-0.9)
  627. ("rust-lazy-static" ,rust-lazy-static-1)
  628. ("rust-nix" ,rust-nix-0.20)
  629. ("rust-nl80211" ,rust-nl80211-0.0.2)
  630. ("rust-serde" ,rust-serde-1)
  631. ("rust-serde-derive" ,rust-serde-derive-1)
  632. ("rust-serde-json" ,rust-serde-json-1)
  633. ("rust-signal-hook" ,rust-signal-hook-0.3)
  634. ("rust-swayipc" ,rust-swayipc-2)
  635. ("rust-toml" ,rust-toml-0.5)
  636. ("rust-cpuprofiler" ,rust-cpuprofiler-0.0)
  637. ("rust-inotify" ,rust-inotify-0.9)
  638. ("rust-libpulse-binding" ,rust-libpulse-binding-2)
  639. ("rust-maildir" ,rust-maildir-0.5)
  640. ("rust-notmuch" ,rust-notmuch-0.6)
  641. ("rust-progress" ,rust-progress-0.2))
  642. #:cargo-development-inputs
  643. (("rust-assert-fs" ,rust-assert-fs-1))
  644. #:phases
  645. (modify-phases %standard-phases
  646. (add-after 'unpack 'enable-unstable-features
  647. (lambda _
  648. (setenv "RUSTC_BOOTSTRAP" "1")))
  649. (add-after 'unpack 'fix-resources-path
  650. (lambda* (#:key outputs #:allow-other-keys)
  651. (let* ((out (assoc-ref outputs "out"))
  652. (share (string-append out "/share")))
  653. (substitute* "src/util.rs"
  654. (("/usr/share/i3status-rust") share)))))
  655. (add-after 'install 'install-resources
  656. (lambda* (#:key outputs #:allow-other-keys)
  657. (let ((out (assoc-ref outputs "out")))
  658. (copy-recursively "files" (string-append out "/share")))))
  659. (add-after 'install 'wrap-i3status
  660. (lambda* (#:key outputs inputs #:allow-other-keys)
  661. (let ((out (assoc-ref outputs "out"))
  662. (paths (map
  663. (lambda (input)
  664. (string-append (assoc-ref inputs input) "/bin"))
  665. '("alsa-utils" "coreutils" "curl" "dbus" "ibus" "iproute"
  666. "kdeconnect" "lm-sensors" "pulseaudio"
  667. "openssl"
  668. "setxkbmap" "speedtest-cli" "xdg-utils" "xrandr"
  669. "zlib"))))
  670. (wrap-program (string-append out "/bin/i3status-rs")
  671. `("PATH" prefix ,paths))))))))
  672. (native-inputs
  673. (list pkg-config))
  674. (inputs
  675. `(("alsa-utils" ,alsa-utils)
  676. ("bash-minimal" ,bash-minimal)
  677. ("coreutils" ,coreutils)
  678. ("curl" ,curl)
  679. ("dbus" ,dbus)
  680. ("ibus" ,ibus)
  681. ("iproute" ,iproute)
  682. ("kdeconnect" ,kdeconnect)
  683. ("lm-sensors" ,lm-sensors)
  684. ("pulseaudio" ,pulseaudio)
  685. ("openssl" ,openssl)
  686. ("setxkbmap" ,setxkbmap)
  687. ("speedtest-cli" ,speedtest-cli)
  688. ("xdg-utils" ,xdg-utils)
  689. ("xrandr" ,xrandr)
  690. ("zlib" ,zlib)))
  691. (home-page "https://github.com/greshake/i3status-rust")
  692. (synopsis "i3status, written in pure Rust")
  693. (description "@code{i3status-rs} is a feature-rich and resource-friendly
  694. replacement for i3status, written in pure Rust. It provides a way to display
  695. @code{blocks} of system information (time, battery status, volume, etc) on the i3
  696. bar. It is also compatible with sway.")
  697. (license license:gpl3)))
  698. (define-public ripgrep
  699. (package
  700. (name "ripgrep")
  701. (version "13.0.0")
  702. (source
  703. (origin
  704. (method url-fetch)
  705. (uri (crate-uri "ripgrep" version))
  706. (file-name
  707. (string-append name "-" version ".tar.gz"))
  708. (sha256
  709. (base32
  710. "1gv4imhjgxmyxaa996yshcjlakmrjw9pf4rycp90pq675cn9sz7k"))))
  711. (build-system cargo-build-system)
  712. (arguments
  713. `(#:cargo-inputs
  714. (("rust-bstr" ,rust-bstr-0.2)
  715. ("rust-clap" ,rust-clap-2)
  716. ("rust-grep" ,rust-grep-0.2)
  717. ("rust-ignore" ,rust-ignore-0.4)
  718. ("rust-jemallocator" ,rust-jemallocator-0.3)
  719. ("rust-lazy-static" ,rust-lazy-static-1)
  720. ("rust-log" ,rust-log-0.4)
  721. ("rust-num-cpus" ,rust-num-cpus-1)
  722. ("rust-regex" ,rust-regex-1)
  723. ("rust-serde-json" ,rust-serde-json-1)
  724. ("rust-termcolor" ,rust-termcolor-1))
  725. #:cargo-development-inputs
  726. (("rust-serde" ,rust-serde-1)
  727. ("rust-serde-derive" ,rust-serde-derive-1)
  728. ("rust-walkdir" ,rust-walkdir-2))
  729. #:modules ((ice-9 match)
  730. (guix build cargo-build-system)
  731. (guix build utils))
  732. #:phases
  733. (modify-phases %standard-phases
  734. (add-after 'build 'install-manpage
  735. ;; NOTE: This is done before 'check so that there's only one output
  736. ;; directory with the man page.
  737. (lambda* (#:key outputs #:allow-other-keys)
  738. (match (find-files "target" "^rg\\.1$")
  739. ((manpage)
  740. (install-file manpage (string-append
  741. (assoc-ref outputs "out")
  742. "/share/man/man1"))))
  743. #t)))
  744. #:features '("pcre2")))
  745. (native-inputs
  746. (list asciidoc pcre2 pkg-config))
  747. (home-page "https://github.com/BurntSushi/ripgrep")
  748. (synopsis "Line-oriented search tool")
  749. (description
  750. "ripgrep is a line-oriented search tool that recursively searches
  751. your current directory for a regex pattern while respecting your
  752. gitignore rules.")
  753. (license (list license:unlicense license:expat))))
  754. (define-public git-interactive-rebase-tool
  755. (package
  756. (name "git-interactive-rebase-tool")
  757. (version "2.1.0")
  758. (source
  759. (origin
  760. ;; crates.io does not provide the test data.
  761. (method git-fetch)
  762. (uri (git-reference
  763. (url "https://github.com/mitmaro/git-interactive-rebase-tool")
  764. (commit version)))
  765. (file-name (git-file-name name version))
  766. (sha256
  767. (base32
  768. "173spqqpyc00kvfmldjmjfqizh9b4spq4xw4bskd4dny8qcpz28d"))))
  769. (build-system cargo-build-system)
  770. (arguments
  771. `(#:cargo-test-flags
  772. ;; https://github.com/MitMaro/git-interactive-rebase-tool/issues/586
  773. '("--release" "--" "--skip=tests::success")
  774. #:cargo-inputs
  775. (("rust-anyhow" ,rust-anyhow-1)
  776. ("rust-chrono" ,rust-chrono-0.4)
  777. ("rust-clap" ,rust-clap-2)
  778. ("rust-crossterm" ,rust-crossterm-0.19)
  779. ("rust-git2" ,rust-git2-0.13)
  780. ("rust-num-format" ,rust-num-format-0.4)
  781. ("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
  782. ("rust-unicode-width" ,rust-unicode-width-0.1)
  783. ("rust-xi-unicode" ,rust-xi-unicode-0.3))
  784. #:cargo-development-inputs
  785. (("rust-concat-idents" ,rust-concat-idents-1)
  786. ("rust-lazy-static" ,rust-lazy-static-1)
  787. ("rust-rstest" ,rust-rstest-0.6)
  788. ("rust-serial-test" ,rust-serial-test-0.5)
  789. ("rust-tempfile" ,rust-tempfile-3))))
  790. (inputs
  791. (list zlib))
  792. (home-page "https://gitrebasetool.mitmaro.ca/")
  793. (synopsis "Terminal based sequence editor for git interactive rebase")
  794. (description
  795. "This application is a terminal-based sequence editor for git interactive
  796. rebase.")
  797. (license license:gpl3+)))
  798. (define-public rust-cbindgen
  799. (package
  800. (name "rust-cbindgen")
  801. (version "0.13.2")
  802. (source
  803. (origin
  804. (method url-fetch)
  805. (uri (crate-uri "cbindgen" version))
  806. (file-name (string-append name "-" version ".tar.xz"))
  807. (sha256
  808. (base32
  809. "0673pq96hs7waavkv58v2pakpxpsfyjvbraa5kyl2b44phgdzcid"))))
  810. (build-system cargo-build-system)
  811. (arguments
  812. `(#:cargo-inputs
  813. (("clap" ,rust-clap-2)
  814. ("log" ,rust-log-0.4)
  815. ("proc-macro2" ,rust-proc-macro2-1)
  816. ("quote" ,rust-quote-1)
  817. ("serde" ,rust-serde-1)
  818. ("serde-json" ,rust-serde-json-1)
  819. ("syn" ,rust-syn-1)
  820. ("tempfile" ,rust-tempfile-3)
  821. ("toml" ,rust-toml-0.5))))
  822. (home-page "https://github.com/eqrion/cbindgen/")
  823. (synopsis "Tool for generating C bindings to Rust code")
  824. (description
  825. "This package provides a tool for generating C/C++ bindings to Rust code.")
  826. (license license:mpl2.0)))
  827. (define-public rust-cbindgen-0.19
  828. (package
  829. (inherit rust-cbindgen)
  830. (name "rust-cbindgen")
  831. (version "0.19.0")
  832. (source
  833. (origin
  834. (method url-fetch)
  835. (uri (crate-uri "cbindgen" version))
  836. (file-name
  837. (string-append name "-" version ".tar.gz"))
  838. (sha256
  839. (base32
  840. "1yld9fni9g9mzg4r42zfk79aq9mzm2sfzzjrrx4vir4lp4qqqwiq"))))
  841. (arguments
  842. `(#:cargo-inputs
  843. (("rust-clap" ,rust-clap-2)
  844. ("rust-heck" ,rust-heck-0.3)
  845. ("rust-indexmap" ,rust-indexmap-1)
  846. ("rust-log" ,rust-log-0.4)
  847. ("rust-proc-macro2" ,rust-proc-macro2-1)
  848. ("rust-quote" ,rust-quote-1)
  849. ("rust-serde" ,rust-serde-1)
  850. ("rust-serde-json" ,rust-serde-json-1)
  851. ("rust-syn" ,rust-syn-1)
  852. ("rust-tempfile" ,rust-tempfile-3)
  853. ("rust-toml" ,rust-toml-0.5))
  854. #:cargo-development-inputs
  855. (("rust-serial-test" ,rust-serial-test-0.5))))
  856. (native-inputs
  857. (list python-cython))))
  858. (define-public rust-cbindgen-0.16
  859. (package
  860. (inherit rust-cbindgen)
  861. (name "rust-cbindgen")
  862. (version "0.16.0")
  863. (source
  864. (origin
  865. (method url-fetch)
  866. (uri (crate-uri "cbindgen" version))
  867. (file-name (string-append name "-" version ".tar.gz"))
  868. (sha256
  869. (base32 "049cai626nzw0km03parx4sxwaxgbr7i5ifjbjwnfxkqkj5k2i4k"))))
  870. (arguments
  871. `(#:tests? #false ;missing files
  872. #:cargo-inputs
  873. (("rust-clap" ,rust-clap-2)
  874. ("rust-heck" ,rust-heck-0.3)
  875. ("rust-indexmap" ,rust-indexmap-1)
  876. ("rust-log" ,rust-log-0.4)
  877. ("rust-proc-macro2" ,rust-proc-macro2-1)
  878. ("rust-quote" ,rust-quote-1)
  879. ("rust-serde" ,rust-serde-1)
  880. ("rust-serde-json" ,rust-serde-json-1)
  881. ("rust-syn" ,rust-syn-1)
  882. ("rust-tempfile" ,rust-tempfile-3)
  883. ("rust-toml" ,rust-toml-0.5))
  884. #:cargo-development-inputs
  885. (("rust-serial-test" ,rust-serial-test-0.5))))))
  886. (define-public rust-cbindgen-0.15
  887. (package
  888. (inherit rust-cbindgen)
  889. (name "rust-cbindgen")
  890. (version "0.15.0")
  891. (source
  892. (origin
  893. (method url-fetch)
  894. (uri (crate-uri "cbindgen" version))
  895. (file-name (string-append name "-" version ".tar.gz"))
  896. (sha256
  897. (base32 "0dgf49zij9rxnf0lv4k5gcmx1mxcz16czkk6q63anz0xp8ds3xhx"))))
  898. (arguments
  899. `(#:tests? #false ;missing files
  900. #:cargo-inputs
  901. (("rust-clap" ,rust-clap-2)
  902. ("rust-heck" ,rust-heck-0.3)
  903. ("rust-indexmap" ,rust-indexmap-1)
  904. ("rust-log" ,rust-log-0.4)
  905. ("rust-proc-macro2" ,rust-proc-macro2-1)
  906. ("rust-quote" ,rust-quote-1)
  907. ("rust-serde" ,rust-serde-1)
  908. ("rust-serde-json" ,rust-serde-json-1)
  909. ("rust-syn" ,rust-syn-1)
  910. ("rust-tempfile" ,rust-tempfile-3)
  911. ("rust-toml" ,rust-toml-0.5))))))
  912. (define-public rust-cbindgen-0.14
  913. (package
  914. (inherit rust-cbindgen)
  915. (name "rust-cbindgen")
  916. (version "0.14.1")
  917. (source
  918. (origin
  919. (method url-fetch)
  920. (uri (crate-uri "cbindgen" version))
  921. (file-name
  922. (string-append name "-" version ".tar.gz"))
  923. (sha256
  924. (base32
  925. "1ppwqbzydxlg9a24lynzfk60xrvqw4k31mpz1wrk6lbf88zf8nxi"))))))
  926. (define-public rust-cbindgen-0.12
  927. (package
  928. (inherit rust-cbindgen)
  929. (name "rust-cbindgen")
  930. (version "0.12.2")
  931. (source
  932. (origin
  933. (method url-fetch)
  934. (uri (crate-uri "cbindgen" version))
  935. (file-name
  936. (string-append name "-" version ".tar.gz"))
  937. (sha256
  938. (base32
  939. "13jzbmjz1bmmfr0i80hw6ar484mgabx3hbpb2ynhk0ddqi0yr58m"))))))
  940. (define-public sniffglue
  941. (package
  942. (name "sniffglue")
  943. (version "0.12.1")
  944. (source
  945. (origin
  946. (method url-fetch)
  947. (uri (crate-uri "sniffglue" version))
  948. (file-name
  949. (string-append name "-" version ".tar.gz"))
  950. (sha256
  951. (base32
  952. "1q1kwkw1hq38qgvc6j4b5l9m85a6lpn1jls4bm27c5kha9cg8l24"))))
  953. (build-system cargo-build-system)
  954. (arguments
  955. `(#:cargo-inputs
  956. (("rust-ansi-term" ,rust-ansi-term-0.12)
  957. ("rust-anyhow" ,rust-anyhow-1)
  958. ("rust-atty" ,rust-atty-0.2)
  959. ("rust-base64" ,rust-base64-0.13)
  960. ("rust-dhcp4r" ,rust-dhcp4r-0.2)
  961. ("rust-dirs-next" ,rust-dirs-next-2)
  962. ("rust-dns-parser" ,rust-dns-parser-0.8)
  963. ("rust-env-logger" ,rust-env-logger-0.8)
  964. ("rust-libc" ,rust-libc-0.2)
  965. ("rust-log" ,rust-log-0.4)
  966. ("rust-nix" ,rust-nix-0.20)
  967. ("rust-nom" ,rust-nom-6)
  968. ("rust-num-cpus" ,rust-num-cpus-1)
  969. ("rust-pcap-sys" ,rust-pcap-sys-0.1)
  970. ("rust-pktparse" ,rust-pktparse-0.5)
  971. ("rust-reduce" ,rust-reduce-0.1)
  972. ("rust-serde" ,rust-serde-1)
  973. ("rust-serde-derive" ,rust-serde-derive-1)
  974. ("rust-serde-json" ,rust-serde-json-1)
  975. ("rust-sha2" ,rust-sha2-0.9)
  976. ("rust-structopt" ,rust-structopt-0.3)
  977. ("rust-syscallz" ,rust-syscallz-0.15)
  978. ("rust-tls-parser" ,rust-tls-parser-0.10)
  979. ("rust-toml" ,rust-toml-0.5)
  980. ("rust-users" ,rust-users-0.11))
  981. #:cargo-development-inputs
  982. (("rust-boxxy" ,rust-boxxy-0.11))))
  983. (inputs
  984. (list libpcap libseccomp))
  985. (home-page "https://github.com/kpcyrd/sniffglue")
  986. (synopsis "Secure multithreaded packet sniffer")
  987. (description
  988. "This package provides a network sniffer written in Rust. Packets
  989. are parsed concurrently using a thread pool to utilize all cpu cores. A goal
  990. of the project is to be runnable on untrusted networks without crashing.")
  991. (license license:gpl3)))
  992. (define-public spotify-tui-0.25
  993. (package
  994. (name "spotify-tui")
  995. (version "0.25.0")
  996. (source
  997. (origin
  998. (method url-fetch)
  999. (uri (crate-uri "spotify-tui" version))
  1000. (file-name (string-append name "-" version ".tar.gz"))
  1001. (sha256
  1002. (base32 "08bpihkdv3rmcksnxp4cz04kawjs6spmwa3wr2k27b30x3q9cd4r"))))
  1003. (build-system cargo-build-system)
  1004. (arguments
  1005. `(#:cargo-inputs
  1006. (("rust-anyhow" ,rust-anyhow-1)
  1007. ("rust-arboard" ,rust-arboard-1)
  1008. ("rust-backtrace" ,rust-backtrace-0.3)
  1009. ("rust-clap" ,rust-clap-2)
  1010. ("rust-crossterm" ,rust-crossterm-0.20)
  1011. ("rust-dirs" ,rust-dirs-3)
  1012. ("rust-rand" ,rust-rand-0.8)
  1013. ("rust-rspotify" ,rust-rspotify-0.10)
  1014. ("rust-serde" ,rust-serde-1)
  1015. ("rust-serde-json" ,rust-serde-json-1)
  1016. ("rust-serde-yaml" ,rust-serde-yaml-0.8)
  1017. ("rust-tokio" ,rust-tokio-0.2)
  1018. ("rust-tui" ,rust-tui-0.16)
  1019. ("rust-unicode-width" ,rust-unicode-width-0.1))))
  1020. (native-inputs (list pkg-config))
  1021. (inputs (list openssl))
  1022. (home-page "https://github.com/Rigellute/spotify-tui")
  1023. (synopsis "Terminal user interface for Spotify")
  1024. (description "This package provides a terminal user interface for Spotify")
  1025. (license (list license:expat license:asl2.0))))
  1026. (define-public tectonic
  1027. (package
  1028. (name "tectonic")
  1029. (version "0.8.2")
  1030. (source
  1031. (origin
  1032. (method url-fetch)
  1033. (uri (crate-uri "tectonic" version))
  1034. (file-name (string-append name "-" version ".tar.gz"))
  1035. (sha256
  1036. (base32 "041v887a3aybrkn5fnrjwy95wxfk4npl6lj8ar8dnidjmfh92bka"))))
  1037. (build-system cargo-build-system)
  1038. (arguments
  1039. `(#:cargo-build-flags '("--release" "--features" "external-harfbuzz")
  1040. #:cargo-inputs
  1041. (("rust-atty" ,rust-atty-0.2)
  1042. ("rust-byte-unit" ,rust-byte-unit-4)
  1043. ("rust-cfg-if" ,rust-cfg-if-1)
  1044. ("rust-error-chain" ,rust-error-chain-0.12)
  1045. ("rust-flate2" ,rust-flate2-1)
  1046. ("rust-fs2" ,rust-fs2-0.4)
  1047. ("rust-lazy-static" ,rust-lazy-static-1)
  1048. ("rust-libc" ,rust-libc-0.2)
  1049. ("rust-md-5" ,rust-md-5-0.9)
  1050. ("rust-open" ,rust-open-1)
  1051. ("rust-quick-xml" ,rust-quick-xml-0.22)
  1052. ("rust-serde" ,rust-serde-1)
  1053. ("rust-sha2" ,rust-sha2-0.9)
  1054. ("rust-structopt" ,rust-structopt-0.3)
  1055. ("rust-tectonic-bridge-core" ,rust-tectonic-bridge-core-0.3)
  1056. ("rust-tectonic-bundles" ,rust-tectonic-bundles-0.2)
  1057. ("rust-tectonic-docmodel" ,rust-tectonic-docmodel-0.1)
  1058. ("rust-tectonic-engine-bibtex" ,rust-tectonic-engine-bibtex-0.1)
  1059. ("rust-tectonic-engine-spx2html" ,rust-tectonic-engine-spx2html-0.1)
  1060. ("rust-tectonic-engine-xdvipdfmx" ,rust-tectonic-engine-xdvipdfmx-0.1)
  1061. ("rust-tectonic-engine-xetex" ,rust-tectonic-engine-xetex-0.2)
  1062. ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
  1063. ("rust-tectonic-geturl" ,rust-tectonic-geturl-0.3)
  1064. ("rust-tectonic-io-base" ,rust-tectonic-io-base-0.4)
  1065. ("rust-tectonic-status-base" ,rust-tectonic-status-base-0.2)
  1066. ("rust-tectonic-xdv" ,rust-tectonic-xdv-0.2)
  1067. ("rust-tectonic-xetex-layout" ,rust-tectonic-xetex-layout-0.1)
  1068. ("rust-tempfile" ,rust-tempfile-3)
  1069. ("rust-termcolor" ,rust-termcolor-1)
  1070. ("rust-toml" ,rust-toml-0.5)
  1071. ("rust-url" ,rust-url-2)
  1072. ("rust-watchexec" ,rust-watchexec-1)
  1073. ("rust-zip" ,rust-zip-0.5))
  1074. #:cargo-development-inputs
  1075. (("rust-filetime" ,rust-filetime-0.2)
  1076. ("rust-futures" ,rust-futures-0.1)
  1077. ("rust-headers" ,rust-headers-0.2)
  1078. ("rust-hyper" ,rust-hyper-0.12)
  1079. ("rust-tempfile" ,rust-tempfile-3)
  1080. ("rust-tokio" ,rust-tokio-0.1))
  1081. #:phases
  1082. (modify-phases %standard-phases
  1083. (add-after 'install 'install-doc
  1084. (lambda* (#:key outputs #:allow-other-keys)
  1085. (let* ((out (assoc-ref outputs "out"))
  1086. (doc (string-append out "/share/doc/" ,name "-" ,version)))
  1087. (copy-recursively "docs/src" doc)))))))
  1088. (native-inputs
  1089. (list pkg-config))
  1090. (inputs
  1091. (list fontconfig
  1092. freetype
  1093. graphite2
  1094. harfbuzz
  1095. icu4c
  1096. libpng
  1097. openssl
  1098. zlib))
  1099. (home-page "https://tectonic-typesetting.github.io/")
  1100. (synopsis "Complete, embeddable TeX/LaTeX engine")
  1101. (description
  1102. "This package provides a modernized, complete, embeddable
  1103. TeX/LaTeX engine. Tectonic is forked from the XeTeX extension to the
  1104. classic Web2C implementation of TeX and uses the TeXLive distribution
  1105. of support files.")
  1106. (license license:expat)))
  1107. (define-public hex
  1108. (package
  1109. (name "hex")
  1110. (version "0.4.2")
  1111. (source
  1112. (origin
  1113. ;; crates.io does not provide the test data.
  1114. (method git-fetch)
  1115. (uri (git-reference
  1116. (url "https://github.com/sitkevij/hex")
  1117. (commit (string-append "v" version))))
  1118. (file-name (git-file-name name version))
  1119. (sha256
  1120. (base32 "03x27nixdlnkkrh85gy4152arp02kpjwq0i9dn9p73lyr24s64lv"))))
  1121. (build-system cargo-build-system)
  1122. (arguments
  1123. `(#:cargo-inputs
  1124. (("rust-ansi-term" ,rust-ansi-term-0.12)
  1125. ("rust-atty" ,rust-atty-0.2)
  1126. ("rust-clap" ,rust-clap-2)
  1127. ("rust-no-color" ,rust-no-color-0.1))
  1128. #:cargo-development-inputs
  1129. (("rust-assert-cmd" ,rust-assert-cmd-1))))
  1130. (home-page "https://github.com/sitkevij/hex")
  1131. (synopsis "Hexadecimal colorized view of a file")
  1132. (description
  1133. "@command{hx} accepts a file path as input and outputs a hexadecimal
  1134. colorized view to stdout.")
  1135. (license license:expat)))
  1136. (define-public tokei
  1137. (package
  1138. (name "tokei")
  1139. (version "12.1.2")
  1140. (source
  1141. (origin
  1142. (method url-fetch)
  1143. (uri (crate-uri "tokei" version))
  1144. (file-name (string-append name "-" version ".tar.gz"))
  1145. (sha256
  1146. (base32 "000w549v1bpw7r57xw656p40ywf1gimvxxx5cjnri2js0xg927x4"))))
  1147. (build-system cargo-build-system)
  1148. (arguments
  1149. `(#:cargo-inputs
  1150. (("rust-aho-corasick" ,rust-aho-corasick-0.7)
  1151. ("rust-clap" ,rust-clap-2)
  1152. ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5)
  1153. ("rust-dashmap" ,rust-dashmap-4)
  1154. ("rust-dirs" ,rust-dirs-3)
  1155. ("rust-encoding-rs-io" ,rust-encoding-rs-io-0.1)
  1156. ("rust-env-logger" ,rust-env-logger-0.8)
  1157. ("rust-grep-searcher" ,rust-grep-searcher-0.1)
  1158. ("rust-hex" ,rust-hex-0.4)
  1159. ("rust-ignore" ,rust-ignore-0.4)
  1160. ("rust-log" ,rust-log-0.4)
  1161. ("rust-num-format" ,rust-num-format-0.4)
  1162. ("rust-once-cell" ,rust-once-cell-1)
  1163. ("rust-parking-lot" ,rust-parking-lot-0.11)
  1164. ("rust-rayon" ,rust-rayon-1)
  1165. ("rust-regex" ,rust-regex-1)
  1166. ("rust-serde" ,rust-serde-1)
  1167. ("rust-serde-cbor" ,rust-serde-cbor-0.11)
  1168. ("rust-serde-json" ,rust-serde-json-1)
  1169. ("rust-serde-yaml" ,rust-serde-yaml-0.8)
  1170. ("rust-tera" ,rust-tera-1)
  1171. ("rust-term-size" ,rust-term-size-0.3)
  1172. ("rust-toml" ,rust-toml-0.5))
  1173. #:cargo-development-inputs
  1174. (("rust-git2" ,rust-git2-0.13)
  1175. ("rust-regex" ,rust-regex-1)
  1176. ("rust-tempfile" ,rust-tempfile-3))))
  1177. (native-inputs
  1178. (list pkg-config))
  1179. (inputs
  1180. (list libgit2 openssl zlib))
  1181. (home-page "https://tokei.rs")
  1182. (synopsis "Count code, quickly")
  1183. (description
  1184. "Tokei is a program that displays statistics about your code. Tokei will
  1185. show number of files, total lines within those files and code, comments, and
  1186. blanks grouped by language.")
  1187. (license (list license:expat license:asl2.0))))
  1188. (define-public vivid
  1189. (package
  1190. (name "vivid")
  1191. (version "0.7.0")
  1192. (source
  1193. (origin
  1194. (method url-fetch)
  1195. (uri (crate-uri "vivid" version))
  1196. (file-name (string-append name "-" version ".tar.gz"))
  1197. (sha256
  1198. (base32 "01fds6dm19bqgqydaa6n051v9l4wh9rb5d6sr9akwp2cc0fs43b7"))))
  1199. (build-system cargo-build-system)
  1200. (arguments
  1201. `(#:cargo-inputs
  1202. (("rust-ansi-colours" ,rust-ansi-colours-1)
  1203. ("rust-clap" ,rust-clap-2)
  1204. ("rust-dirs" ,rust-dirs-3)
  1205. ("rust-lazy-static" ,rust-lazy-static-1)
  1206. ("rust-rust-embed" ,rust-rust-embed-5)
  1207. ("rust-yaml-rust" ,rust-yaml-rust-0.4))))
  1208. (home-page "https://github.com/sharkdp/vivid")
  1209. (synopsis "LS_COLORS environment variable manager")
  1210. (description
  1211. "vivid is a generator for the @code{LS_COLORS} environment variable that
  1212. controls the colorized output of ls, tree, fd, bfs, dust and many other tools.
  1213. It uses a YAML configuration format for the filetype-database and the color
  1214. themes. In contrast to @command{dircolors}, the database and the themes are
  1215. organized in different files. This allows users to choose and customize color
  1216. themes independent from the collection of file extensions. Instead of using
  1217. cryptic ANSI escape codes, colors can be specified in the RRGGBB format and
  1218. will be translated to either truecolor (24-bit) ANSI codes or 8-bit codes for
  1219. older terminal emulators.")
  1220. (license (list license:expat license:asl2.0))))
  1221. (define-public watchexec
  1222. (package
  1223. (name "watchexec")
  1224. (version "1.16.1")
  1225. (source
  1226. (origin
  1227. (method url-fetch)
  1228. (uri (crate-uri "watchexec-cli" version))
  1229. (file-name (string-append name "-" version ".tar.gz"))
  1230. (sha256
  1231. (base32 "1wp424gzw1zmax5yy5gya15knl24rjx8gi9c7palvq807q3cnj65"))))
  1232. (build-system cargo-build-system)
  1233. (arguments
  1234. `(#:phases
  1235. (modify-phases %standard-phases
  1236. (add-after 'install 'install-completions
  1237. (lambda* (#:key outputs #:allow-other-keys)
  1238. (let* ((out (assoc-ref outputs "out"))
  1239. (zsh (string-append out "/share/zsh/site-functions/_watchexec"))
  1240. (doc (string-append out "/share/doc/watchexec-" ,version)))
  1241. (mkdir-p (dirname zsh))
  1242. ;; FIXME: The crates.io source does not provide zsh
  1243. ;; completions. But the GitHub source does not compile.
  1244. ;;
  1245. ;; (copy-file "completions/zsh" zsh)
  1246. (install-file "README.md" doc)))))
  1247. #:cargo-inputs
  1248. (("rust-clap" ,rust-clap-2)
  1249. ("rust-embed-resource" ,rust-embed-resource-1)
  1250. ("rust-env-logger" ,rust-env-logger-0.8)
  1251. ("rust-log" ,rust-log-0.4)
  1252. ("rust-watchexec" ,rust-watchexec-1))
  1253. #:cargo-development-inputs
  1254. (("rust-assert-cmd" ,rust-assert-cmd-1)
  1255. ("rust-insta" ,rust-insta-1))))
  1256. (home-page "https://github.com/watchexec/watchexec")
  1257. (synopsis "Executes commands in response to file modifications")
  1258. (description
  1259. "@command{watchexec} is a simple, standalone tool that watches a path and
  1260. runs a command whenever it detects modifications.")
  1261. (license license:asl2.0)))
  1262. (define-public rbw
  1263. (package
  1264. (name "rbw")
  1265. (version "1.4.1")
  1266. (source
  1267. (origin
  1268. (method url-fetch)
  1269. (uri (crate-uri "rbw" version))
  1270. (file-name (string-append name "-" version ".tar.gz"))
  1271. (sha256
  1272. (base32 "0zszp9hvilpikbd66b5zbvspks0spv8dh0yry0sxnc5yqvl2ixnf"))))
  1273. (build-system cargo-build-system)
  1274. (arguments
  1275. `(#:phases
  1276. (modify-phases %standard-phases
  1277. (add-after 'configure 'relax-requirements
  1278. (lambda _
  1279. (substitute*
  1280. "guix-vendor/rust-password-hash-0.3.2.tar.gz/Cargo.toml"
  1281. (("version = \">=1, <1.1.0\"") "version = \">=1\""))
  1282. (substitute*
  1283. "guix-vendor/rust-rsa-0.5.0.tar.gz/Cargo.toml"
  1284. (("version = \">=1, <1.5\"") "version = \"^1\""))
  1285. (substitute*
  1286. "Cargo.toml"
  1287. (("version = \"1.4\"") "version = \"^1\"")))))
  1288. #:cargo-inputs
  1289. (("rust-aes" ,rust-aes-0.7)
  1290. ("rust-anyhow" ,rust-anyhow-1)
  1291. ("rust-arrayvec" ,rust-arrayvec-0.7)
  1292. ("rust-async-trait" ,rust-async-trait-0.1)
  1293. ("rust-base32" ,rust-base32-0.4)
  1294. ("rust-base64" ,rust-base64-0.13)
  1295. ("rust-block-modes" ,rust-block-modes-0.8)
  1296. ("rust-block-padding" ,rust-block-padding-0.2)
  1297. ("rust-daemonize" ,rust-daemonize-0.4)
  1298. ("rust-directories" ,rust-directories-4)
  1299. ("rust-env-logger" ,rust-env-logger-0.9)
  1300. ("rust-hkdf" ,rust-hkdf-0.11)
  1301. ("rust-hmac" ,rust-hmac-0.11)
  1302. ("rust-humantime" ,rust-humantime-2)
  1303. ("rust-libc" ,rust-libc-0.2)
  1304. ("rust-log" ,rust-log-0.4)
  1305. ("rust-nix" ,rust-nix-0.23)
  1306. ("rust-paw" ,rust-paw-1)
  1307. ("rust-pbkdf2" ,rust-pbkdf2-0.9)
  1308. ("rust-percent-encoding" ,rust-percent-encoding-2)
  1309. ("rust-rand" ,rust-rand-0.8)
  1310. ("rust-region" ,rust-region-3)
  1311. ("rust-reqwest" ,rust-reqwest-0.11)
  1312. ("rust-rsa" ,rust-rsa-0.5)
  1313. ("rust-serde" ,rust-serde-1)
  1314. ("rust-serde-json" ,rust-serde-json-1)
  1315. ("rust-serde-path-to-error" ,rust-serde-path-to-error-0.1)
  1316. ("rust-serde-repr" ,rust-serde-repr-0.1)
  1317. ("rust-sha-1" ,rust-sha-1-0.9)
  1318. ("rust-sha2" ,rust-sha2-0.9)
  1319. ("rust-structopt" ,rust-structopt-0.3)
  1320. ("rust-tempfile" ,rust-tempfile-3)
  1321. ("rust-term-size" ,rust-term-size-0.3)
  1322. ("rust-textwrap" ,rust-textwrap-0.11)
  1323. ("rust-thiserror" ,rust-thiserror-1)
  1324. ("rust-tokio" ,rust-tokio-1)
  1325. ("rust-totp-lite" ,rust-totp-lite-1)
  1326. ("rust-url" ,rust-url-2)
  1327. ("rust-uuid" ,rust-uuid-0.8)
  1328. ("rust-zeroize" ,rust-zeroize-1))))
  1329. (home-page "https://git.tozt.net/rbw")
  1330. (synopsis "Unofficial Bitwarden CLI")
  1331. (description "This package is an unofficial command line client for
  1332. Bitwarden. Although Bitwarden ships with a command line client, but
  1333. it's limited by being stateless, which makes it very difficult to use. This
  1334. client avoids that problem by maintaining a background process which is able
  1335. to hold the keys in memory, similar to the way that ssh-agent or gpg-agent
  1336. work. This allows the client to be used in a much simpler way, with the
  1337. background agent taking care of maintaining the necessary state.")
  1338. (license license:expat)))
  1339. (define-public rust-analyzer
  1340. (package
  1341. (name "rust-analyzer")
  1342. (version "2022-01-10")
  1343. (source
  1344. (origin
  1345. ;; The crate at "crates.io" is empty.
  1346. (method git-fetch)
  1347. (uri (git-reference
  1348. (url "https://github.com/rust-analyzer/rust-analyzer")
  1349. (commit version)))
  1350. (file-name (git-file-name name version))
  1351. (sha256
  1352. (base32
  1353. "1ci85bp8xwqrk8nqr8sh6yj8njgd98nhgnhaks2g00c77wwyra41"))))
  1354. (build-system cargo-build-system)
  1355. (arguments
  1356. `(#:install-source? #f ; virtual manifest
  1357. #:cargo-test-flags
  1358. '("--release" "--"
  1359. "--skip=tests::test_version_check" ;it need rustc's version
  1360. ;; FIXME: Guix's rust does not install source in
  1361. ;; %out/lib/rustlib/src/rust so "can't load standard library from
  1362. ;; sysroot"
  1363. "--skip=tests::test_loading_rust_analyzer"
  1364. ;; Failed to run rustfmt from toolchain 'stable'. Please run `rustup
  1365. ;; component add rustfmt --toolchain stable` to install it
  1366. "--skip=tests::sourcegen::sourcegen_assists_docs" ;need rustfmt
  1367. "--skip=tests::sourcegen_ast::sourcegen_ast" ;same
  1368. "--skip=tidy::cargo_files_are_tidy" ;not needed
  1369. "--skip=tidy::check_licenses" ;it runs cargo metadata
  1370. "--skip=tidy::check_merge_commits" ;it runs git rev-list
  1371. "--skip=tidy::check_code_formatting" ;need rustfmt as cargo fmt
  1372. "--skip=tidy::generate_grammar" ;same
  1373. "--skip=tidy::generate_assists_tests") ;same
  1374. #:cargo-development-inputs
  1375. (("rust-arbitrary" ,rust-arbitrary-1)
  1376. ("rust-derive-arbitrary" ,rust-derive-arbitrary-1)
  1377. ("rust-expect-test" ,rust-expect-test-1)
  1378. ("rust-oorandom" ,rust-oorandom-11.1)
  1379. ("rust-quote" ,rust-quote-1)
  1380. ("rust-rayon" ,rust-rayon-1)
  1381. ("rust-tracing" ,rust-tracing-0.1)
  1382. ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3)
  1383. ("rust-tracing-tree" ,rust-tracing-tree-0.2)
  1384. ("rust-ungrammar" ,rust-ungrammar-1))
  1385. #:cargo-inputs
  1386. (("rust-always-assert" ,rust-always-assert-0.1)
  1387. ("rust-anyhow" ,rust-anyhow-1)
  1388. ("rust-anymap" ,rust-anymap-0.12)
  1389. ("rust-arrayvec" ,rust-arrayvec-0.7)
  1390. ("rust-backtrace" ,rust-backtrace-0.3)
  1391. ("rust-cargo-metadata" ,rust-cargo-metadata-0.14)
  1392. ("rust-cfg-if" ,rust-cfg-if-1)
  1393. ("rust-chalk-ir" ,rust-chalk-ir-0.75)
  1394. ("rust-chalk-recursive" ,rust-chalk-recursive-0.75)
  1395. ("rust-chalk-solve" ,rust-chalk-solve-0.75)
  1396. ("rust-countme" ,rust-countme-3)
  1397. ("rust-cov-mark" ,rust-cov-mark-2)
  1398. ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5)
  1399. ("rust-dashmap" ,rust-dashmap-4)
  1400. ("rust-dissimilar" ,rust-dissimilar-1)
  1401. ("rust-dot" ,rust-dot-0.1)
  1402. ("rust-drop-bomb" ,rust-drop-bomb-0.1)
  1403. ("rust-either" ,rust-either-1)
  1404. ("rust-ena" ,rust-ena-0.14)
  1405. ("rust-env-logger" ,rust-env-logger-0.8)
  1406. ("rust-flate2" ,rust-flate2-1)
  1407. ("rust-fst" ,rust-fst-0.4)
  1408. ("rust-home" ,rust-home-0.5)
  1409. ("rust-indexmap" ,rust-indexmap-1)
  1410. ("rust-itertools" ,rust-itertools-0.10)
  1411. ("rust-jod-thread" ,rust-jod-thread-0.1)
  1412. ("rust-libc" ,rust-libc-0.2)
  1413. ("rust-libloading" ,rust-libloading-0.7)
  1414. ("rust-log" ,rust-log-0.4)
  1415. ("rust-lsp-server" ,rust-lsp-server-0.5)
  1416. ("rust-lsp-types" ,rust-lsp-types-0.91)
  1417. ("rust-memmap2" ,rust-memmap2-0.5)
  1418. ("rust-mimalloc" ,rust-mimalloc-0.1)
  1419. ("rust-miow" ,rust-miow-0.4)
  1420. ("rust-notify" ,rust-notify-5)
  1421. ("rust-object" ,rust-object-0.28)
  1422. ("rust-once-cell" ,rust-once-cell-1)
  1423. ("rust-parking-lot" ,rust-parking-lot-0.11)
  1424. ("rust-perf-event" ,rust-perf-event-0.4)
  1425. ("rust-proc-macro2" ,rust-proc-macro2-1)
  1426. ("rust-pulldown-cmark" ,rust-pulldown-cmark-0.8)
  1427. ("rust-pulldown-cmark-to-cmark" ,rust-pulldown-cmark-to-cmark-7)
  1428. ("rust-rowan" ,rust-rowan-0.15)
  1429. ("rust-rustc-ap-rustc-lexer" ,rust-rustc-ap-rustc-lexer-725)
  1430. ("rust-rustc-hash" ,rust-rustc-hash-1)
  1431. ("rust-salsa" ,rust-salsa-0.17)
  1432. ("rust-scoped-tls" ,rust-scoped-tls-1)
  1433. ("rust-serde" ,rust-serde-1)
  1434. ("rust-serde-json" ,rust-serde-json-1)
  1435. ("rust-serde-path-to-error" ,rust-serde-path-to-error-0.1)
  1436. ("rust-typed-arena" ,rust-typed-arena-2)
  1437. ("rust-smallvec" ,rust-smallvec-1)
  1438. ("rust-smol-str" ,rust-smol-str-0.1)
  1439. ("rust-snap" ,rust-snap-1)
  1440. ("rust-text-size" ,rust-text-size-1)
  1441. ("rust-threadpool" ,rust-threadpool-1)
  1442. ("rust-tikv-jemalloc-ctl" ,rust-tikv-jemalloc-ctl-0.4)
  1443. ("rust-tikv-jemallocator" ,rust-tikv-jemallocator-0.4)
  1444. ("rust-url" ,rust-url-2)
  1445. ("rust-walkdir" ,rust-walkdir-2)
  1446. ("rust-winapi" ,rust-winapi-0.3)
  1447. ("rust-write-json" ,rust-write-json-0.1)
  1448. ("rust-xflags" ,rust-xflags-0.2)
  1449. ("rust-xshell" ,rust-xshell-0.1))
  1450. #:phases
  1451. (modify-phases %standard-phases
  1452. (add-before 'check 'fix-tests
  1453. (lambda _
  1454. (let ((bash (string-append "#!" (which "bash"))))
  1455. (with-directory-excursion "crates/parser/test_data/lexer/ok"
  1456. (substitute* "single_line_comments.txt"
  1457. (("SHEBANG 19")
  1458. (string-append "SHEBANG "
  1459. (number->string (string-length bash))))
  1460. (("#!/usr/bin/env bash") bash))))))
  1461. (add-before 'install 'install-doc
  1462. (lambda* (#:key outputs #:allow-other-keys)
  1463. (let* ((out (assoc-ref outputs "out"))
  1464. (doc (string-append out "/share/doc/rust-analyzer-"
  1465. ,version)))
  1466. (copy-recursively "docs" doc))))
  1467. (add-before 'install 'chdir
  1468. (lambda _
  1469. (chdir "crates/rust-analyzer")))
  1470. (add-after 'install 'wrap-program
  1471. (lambda* (#:key inputs outputs #:allow-other-keys)
  1472. (let* ((out (assoc-ref outputs "out"))
  1473. (bin (string-append out "/bin"))
  1474. (rust-src-path (search-input-directory
  1475. inputs "/lib/rustlib/src/rust/library")))
  1476. ;; if environment variable RUST_SRC_PATH is not set, set it,
  1477. ;; make rust-analyzer work out of box.
  1478. (with-directory-excursion bin
  1479. (let* ((prog "rust-analyzer")
  1480. (wrapped-file (string-append (dirname prog)
  1481. "/." (basename prog) "-real"))
  1482. (prog-tmp (string-append wrapped-file "-tmp")))
  1483. (link prog wrapped-file)
  1484. (call-with-output-file prog-tmp
  1485. (lambda (port)
  1486. (format port "#!~a
  1487. if test -z \"${RUST_SRC_PATH}\";then export RUST_SRC_PATH=~S;fi;
  1488. exec -a \"$0\" \"~a\" \"$@\""
  1489. (which "bash")
  1490. rust-src-path
  1491. (canonicalize-path wrapped-file))))
  1492. (chmod prog-tmp #o755)
  1493. (rename-file prog-tmp prog))))))
  1494. (replace 'install-license-files
  1495. (lambda* (#:key outputs #:allow-other-keys)
  1496. (let* ((out (assoc-ref outputs "out"))
  1497. (doc (string-append out "/share/doc/rust-analyzer-"
  1498. ,version)))
  1499. (chdir "../..")
  1500. (install-file "LICENSE-MIT" doc)
  1501. (install-file "LICENSE-APACHE" doc)))))))
  1502. (native-inputs (list rust-src))
  1503. (home-page "https://rust-analyzer.github.io/")
  1504. (synopsis "Experimental Rust compiler front-end for IDEs")
  1505. (description "Rust-analyzer is a modular compiler frontend for the Rust
  1506. language. It is a part of a larger rls-2.0 effort to create excellent IDE
  1507. support for Rust.")
  1508. (license (list license:expat license:asl2.0))))
  1509. (define-public rust-cargo-c
  1510. (package
  1511. (name "rust-cargo-c")
  1512. (version "0.8.1+cargo-0.53")
  1513. (source
  1514. (origin
  1515. (method url-fetch)
  1516. (uri (crate-uri "cargo-c" version))
  1517. (file-name
  1518. (string-append name "-" version ".tar.gz"))
  1519. (sha256
  1520. (base32
  1521. "0fwdxhdj2963xr6xfqr56i7hikhsdv562vgxq2dj3h2mi3dil1k6"))))
  1522. (build-system cargo-build-system)
  1523. (arguments
  1524. `(#:cargo-inputs
  1525. (("rust-cbindgen" ,rust-cbindgen-0.19)
  1526. ("rust-cargo" ,rust-cargo-0.53) ;
  1527. ("rust-anyhow" ,rust-anyhow-1)
  1528. ("rust-pretty-env-logger" ,rust-pretty-env-logger-0.4)
  1529. ("rust-structopt" ,rust-structopt-0.3)
  1530. ("rust-log" ,rust-log-0.4)
  1531. ("rust-toml" ,rust-toml-0.5)
  1532. ("rust-cargo-metadata" ,rust-cargo-metadata-0.9)
  1533. ("rust-semver" ,rust-semver-0.10)
  1534. ("rust-serde" ,rust-serde-1)
  1535. ("rust-serde-derive" ,rust-serde-derive-1)
  1536. ("rust-serde-json" ,rust-serde-json-1)
  1537. ("rust-regex" ,rust-regex-1))))
  1538. (native-inputs
  1539. (list pkg-config))
  1540. (inputs
  1541. (list curl libssh2 openssl zlib))
  1542. (home-page "https://github.com/lu-zero/cargo-c")
  1543. (synopsis "Build and install C-compatible libraries")
  1544. (description
  1545. "This package produces and installs a correct pkg-config file, a static
  1546. library and a dynamic library, and a C header to be used by any C (and
  1547. C-compatible) software.")
  1548. (license license:expat)))
  1549. (define-public rtss
  1550. (package
  1551. (name "rtss")
  1552. (version "0.6.2")
  1553. (source
  1554. (origin
  1555. (method url-fetch)
  1556. (uri (crate-uri "rtss" version))
  1557. (file-name (string-append name "-" version ".tar.gz"))
  1558. (sha256
  1559. (base32 "1r1b6fynkjnpj5p3k209sa13mjvh4k0ghzwnribm48dh9v7lfnnv"))))
  1560. (build-system cargo-build-system)
  1561. (arguments
  1562. `(#:cargo-inputs
  1563. (("rust-libc" ,rust-libc-0.2)
  1564. ("rust-memchr" ,rust-memchr-2))))
  1565. (home-page "https://github.com/Freaky/rtss")
  1566. (synopsis "Annotate stdout/stderr with elapsed times")
  1567. (description "@code{rtss} annotates its output with relative durations between
  1568. consecutive lines and since program start.")
  1569. (license license:expat)))
  1570. (define-public swayhide
  1571. (package
  1572. (name "swayhide")
  1573. (version "0.2.0")
  1574. (source
  1575. (origin
  1576. (method url-fetch)
  1577. (uri (crate-uri "swayhide" version))
  1578. (file-name (string-append name "-" version ".tar.gz"))
  1579. (sha256
  1580. (base32 "0x172ffj0lfmbv5nix708l1mfsizxzy74gpxp5amvx0bbaq0p78s"))))
  1581. (build-system cargo-build-system)
  1582. (arguments
  1583. `(#:cargo-inputs
  1584. (("rust-exitcode" ,rust-exitcode-1)
  1585. ("rust-swayipc" ,rust-swayipc-2))))
  1586. (home-page "https://github.com/NomisIV/swayhide/")
  1587. (synopsis "Swallow windows on swaywm")
  1588. (description "swayhide hides the currently active terminal (by moving it
  1589. to the scratchpad), then it executes the supplied command. When the child
  1590. process has finished, the terminal is moved back. This is useful if your
  1591. workflow includes opening graphical programs from the terminal, as the locked
  1592. terminal won't have to take up any space.")
  1593. (license license:gpl3+)))
  1594. (define-public tealdeer
  1595. (package
  1596. (name "tealdeer")
  1597. (version "1.4.1")
  1598. (source
  1599. (origin
  1600. (method url-fetch)
  1601. (uri (crate-uri "tealdeer" version))
  1602. (file-name
  1603. (string-append name "-" version ".tar.gz"))
  1604. (sha256
  1605. (base32
  1606. "0cwf46k2rszcpydrqajnm4dvhggr3ms7sjma0jx02ch4fjicxch7"))))
  1607. (build-system cargo-build-system)
  1608. (arguments
  1609. `(#:phases
  1610. (modify-phases %standard-phases
  1611. (add-after 'install 'install-completions
  1612. (lambda* (#:key outputs #:allow-other-keys)
  1613. (let* ((out (assoc-ref outputs "out"))
  1614. (bash (string-append out "/etc/bash_completion.d/"))
  1615. (fish (string-append out "/share/fish/vendor_completions.d/")))
  1616. (mkdir-p bash)
  1617. (mkdir-p fish)
  1618. (copy-file "bash_tealdeer"
  1619. (string-append bash "tealdeer"))
  1620. (copy-file "fish_tealdeer"
  1621. (string-append fish "tealdeer.fish"))))))
  1622. #:install-source? #f
  1623. #:cargo-test-flags
  1624. '("--release" "--"
  1625. ;; These tests go to the network
  1626. "--skip=test_quiet_old_cache"
  1627. "--skip=test_quiet_cache"
  1628. "--skip=test_quiet_failures"
  1629. "--skip=test_pager_flag_enable"
  1630. "--skip=test_markdown_rendering"
  1631. "--skip=test_spaces_find_command"
  1632. "--skip=test_autoupdate_cache"
  1633. "--skip=test_update_cache")
  1634. #:cargo-inputs
  1635. (("rust-ansi-term" ,rust-ansi-term-0.12)
  1636. ("rust-app-dirs2" ,rust-app-dirs2-2)
  1637. ("rust-atty" ,rust-atty-0.2)
  1638. ("rust-docopt" ,rust-docopt-1)
  1639. ("rust-env-logger" ,rust-env-logger-0.7)
  1640. ("rust-flate2" ,rust-flate2-1)
  1641. ("rust-log" ,rust-log-0.4)
  1642. ("rust-pager" ,rust-pager-0.15)
  1643. ("rust-reqwest" ,rust-reqwest-0.10)
  1644. ("rust-serde" ,rust-serde-1)
  1645. ("rust-serde-derive" ,rust-serde-derive-1)
  1646. ("rust-tar" ,rust-tar-0.4)
  1647. ("rust-toml" ,rust-toml-0.5)
  1648. ("rust-walkdir" ,rust-walkdir-2)
  1649. ("rust-xdg" ,rust-xdg-2))
  1650. #:cargo-development-inputs
  1651. (("rust-assert-cmd" ,rust-assert-cmd-1)
  1652. ("rust-escargot" ,rust-escargot-0.5)
  1653. ("rust-filetime" ,rust-filetime-0.2)
  1654. ("rust-predicates" ,rust-predicates-1)
  1655. ;; This earlier version is required to fix a bug.
  1656. ;; Remove rust-remove-dir-all-0.5.2 when tealdeer gets upgraded
  1657. ("rust-remove-dir-all" ,rust-remove-dir-all-0.5.2)
  1658. ("rust-tempfile" ,rust-tempfile-3))))
  1659. (native-inputs
  1660. (list pkg-config))
  1661. (inputs
  1662. (list openssl))
  1663. (home-page "https://github.com/dbrgn/tealdeer/")
  1664. (synopsis "Fetch and show tldr help pages for many CLI commands")
  1665. (description
  1666. "This package fetches and shows tldr help pages for many CLI commands.
  1667. Full featured offline client with caching support.")
  1668. (license (list license:expat license:asl2.0))))
  1669. (define-public git-absorb
  1670. (package
  1671. (name "git-absorb")
  1672. (version "0.6.6")
  1673. (source
  1674. (origin
  1675. ;; crates.io does not include the manual page.
  1676. (method git-fetch)
  1677. (uri (git-reference
  1678. (url "https://github.com/tummychow/git-absorb")
  1679. (commit version)))
  1680. (file-name (git-file-name name version))
  1681. (sha256
  1682. (base32 "04v10bn24acify34vh5ayymsr1flcyb05f3az9k1s2m6nlxy5gb9"))))
  1683. (build-system cargo-build-system)
  1684. (arguments
  1685. `(#:cargo-inputs
  1686. (("rust-anyhow" ,rust-anyhow-1)
  1687. ("rust-clap" ,rust-clap-2)
  1688. ("rust-git2" ,rust-git2-0.13)
  1689. ("rust-memchr" ,rust-memchr-2)
  1690. ("rust-slog" ,rust-slog-2)
  1691. ("rust-slog-async" ,rust-slog-async-2)
  1692. ("rust-slog-term" ,rust-slog-term-2))
  1693. #:cargo-development-inputs
  1694. (("rust-tempfile" ,rust-tempfile-3))
  1695. #:phases
  1696. (modify-phases %standard-phases
  1697. (add-after 'unpack 'relax-version-requirements
  1698. (lambda _
  1699. (substitute* "Cargo.toml"
  1700. (("2.5") "2")
  1701. (("~2.3\"") "2\"")
  1702. (("~2.33\"") "2\"") ; clap
  1703. (("3.1") "3"))))
  1704. (add-after 'install 'install-manual-page
  1705. (lambda* (#:key outputs #:allow-other-keys)
  1706. (let* ((out (assoc-ref outputs "out"))
  1707. (man (string-append out "/share/man/man1")))
  1708. (install-file "Documentation/git-absorb.1" man)))))))
  1709. (inputs
  1710. (list zlib))
  1711. (home-page "https://github.com/tummychow/git-absorb")
  1712. (synopsis "Git tool for making automatic fixup commits")
  1713. (description
  1714. "@code{git absorb} automatically absorbs staged changes into their
  1715. current branch. @code{git absorb} will automatically identify which commits
  1716. are safe to modify, and which staged changes belong to each of those commits.
  1717. It will then write @code{fixup!} commits for each of those changes.")
  1718. (license license:bsd-3)))
  1719. (define-public zoxide
  1720. (package
  1721. (name "zoxide")
  1722. (version "0.6.0")
  1723. (source
  1724. (origin
  1725. (method url-fetch)
  1726. (uri (crate-uri "zoxide" version))
  1727. (file-name (string-append name "-" version ".tar.gz"))
  1728. (sha256
  1729. (base32 "1ih01l3xp8plicxhmyxjkq12ncpdb8954jcj3dh3lwvkhvw29nkk"))))
  1730. (build-system cargo-build-system)
  1731. (arguments
  1732. `(#:cargo-inputs
  1733. (("rust-anyhow" ,rust-anyhow-1)
  1734. ("rust-askama" ,rust-askama-0.10)
  1735. ("rust-bincode" ,rust-bincode-1)
  1736. ("rust-clap" ,rust-clap-3)
  1737. ("rust-dirs-next" ,rust-dirs-next-2)
  1738. ("rust-dunce" ,rust-dunce-1)
  1739. ("rust-glob" ,rust-glob-0.3)
  1740. ("rust-once-cell" ,rust-once-cell-1)
  1741. ("rust-ordered-float" ,rust-ordered-float-2)
  1742. ("rust-rand" ,rust-rand-0.7)
  1743. ("rust-serde" ,rust-serde-1)
  1744. ("rust-tempfile" ,rust-tempfile-3))
  1745. #:cargo-development-inputs
  1746. (("rust-assert-cmd" ,rust-assert-cmd-1)
  1747. ("rust-seq-macro" ,rust-seq-macro-0.2))))
  1748. (home-page "https://github.com/ajeetdsouza/zoxide/")
  1749. (synopsis "Fast way to navigate your file system")
  1750. (description
  1751. "Zoxide is a fast replacement for your @command{cd} command. It keeps
  1752. track of the directories you use most frequently, and uses a ranking algorithm
  1753. to navigate to the best match.")
  1754. (license license:expat)))