gnu: ruby-2.2: Update to 2.2.10.
[jackhill/guix/guix.git] / gnu / packages / rust.scm
CommitLineData
423f9e44
DC
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2016 David Craven <david@craven.ch>
ecee2147 3;;; Copyright © 2016 Eric Le Bihan <eric.le.bihan.dev@free.fr>
4a78fd46 4;;; Copyright © 2016 Nils Gillmann <ng0@n0.is>
fa73a7c1 5;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
d53fb678 6;;; Copyright © 2017 Nikolai Merinov <nikolai.merinov@member.fsf.org>
fd3ddefa 7;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
af38b2dd 8;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
423f9e44
DC
9;;;
10;;; This file is part of GNU Guix.
11;;;
12;;; GNU Guix is free software; you can redistribute it and/or modify it
13;;; under the terms of the GNU General Public License as published by
14;;; the Free Software Foundation; either version 3 of the License, or (at
15;;; your option) any later version.
16;;;
17;;; GNU Guix is distributed in the hope that it will be useful, but
18;;; WITHOUT ANY WARRANTY; without even the implied warranty of
19;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20;;; GNU General Public License for more details.
21;;;
22;;; You should have received a copy of the GNU General Public License
23;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
24
25(define-module (gnu packages rust)
26 #:use-module (gnu packages base)
5f3d46ce 27 #:use-module (gnu packages bison)
423f9e44 28 #:use-module (gnu packages bootstrap)
ecee2147 29 #:use-module (gnu packages cmake)
423f9e44 30 #:use-module (gnu packages compression)
b5a09649 31 #:use-module (gnu packages curl)
423f9e44 32 #:use-module (gnu packages elf)
5f3d46ce 33 #:use-module (gnu packages flex)
423f9e44 34 #:use-module (gnu packages gcc)
d53fb678 35 #:use-module (gnu packages gdb)
ecee2147 36 #:use-module (gnu packages jemalloc)
5f3d46ce 37 #:use-module (gnu packages linux)
ecee2147 38 #:use-module (gnu packages llvm)
b5a09649 39 #:use-module (gnu packages pkg-config)
ecee2147 40 #:use-module (gnu packages python)
b5a09649
DC
41 #:use-module (gnu packages ssh)
42 #:use-module (gnu packages tls)
ecee2147 43 #:use-module (gnu packages version-control)
d53fb678 44 #:use-module (gnu packages)
b5a09649 45 #:use-module (guix build-system cargo)
423f9e44
DC
46 #:use-module (guix build-system gnu)
47 #:use-module (guix build-system trivial)
48 #:use-module (guix download)
d53fb678 49 #:use-module (guix base16) ;for generated "cargo" native-inputs
423f9e44
DC
50 #:use-module ((guix licenses) #:prefix license:)
51 #:use-module (guix packages)
52 #:use-module (ice-9 match)
53 #:use-module (srfi srfi-26))
54
55;; Should be one less than the current released version.
d53fb678 56(define %rust-bootstrap-binaries-version "1.21.0")
423f9e44
DC
57
58(define %rust-bootstrap-binaries
59 (origin
60 (method url-fetch)
61 (uri (string-append
62 "https://static.rust-lang.org/dist/"
63 "rust-" %rust-bootstrap-binaries-version
d53fb678 64 "-" %host-type ".tar.gz"))
423f9e44
DC
65 (sha256
66 (base32
d53fb678 67 (match %host-type
fd3ddefa 68 ("i686-unknown-linux-gnu"
d53fb678 69 "1vnvqwz30hvyjcfr1f602lg43v2vlqjr3yhb5vr8xnrcc07yvjmp")
fd3ddefa
EF
70 ("x86_64-unknown-linux-gnu"
71 "1s0866qcy0645bqhsbs3pvk2hi52ps8jzs7x096w0as033h707ml")
e85d681c
EF
72 ("armv7-unknown-linux-gnueabihf"
73 "1ml8fjq2b6j2vn1j314w93pf4wjl97n1mbz609h3i7md0zqscvs1")
74 ("aarch64-unknown-linux-gnu"
75 "1hv4m2m7xjcph39r6baryfg23hjcr4sbsrfnd1lh0wn67k2fc7j9")
76 ("mips64el-unknown-linux-gnuabi64"
77 "0p7fzkfcqg5yvj86v434z351dp7s7pgns8nzxj0fz3hmbfbvlvn9")
fd3ddefa 78 (_ "")))))) ; Catch-all for other systems.
d53fb678
NM
79
80(define %cargo-reference-project-file "/dev/null")
81(define %cargo-reference-hash
82 "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")
423f9e44
DC
83
84(define (increment-rust-version rust-version major patch)
85 (match (string-split rust-version #\.)
86 (("1" minor _)
87 (string-append (number->string major) "."
88 (number->string (+ (string->number minor) 1)) "."
89 (number->string patch)))))
90
91(define* (cargo-version rustc-version #:optional (patch 0))
92 ;; Computes the cargo version that matches the rustc version.
af38b2dd
TGR
93 ;; This has so far continued to follow a predictable pattern:
94 ;; https://github.com/rust-lang/cargo/blob/50a46f47/README.md#releases
423f9e44
DC
95 (increment-rust-version rustc-version 0 patch))
96
97(define* (rustc-version bootstrap-version #:optional (patch 0))
98 ;; Computes the rustc version that can be compiled from a given
99 ;; other rustc version. The patch argument is for selecting
100 ;; a stability or security fix. 1.11.0 -> 1.12.1 -> 1.13.0
101 (increment-rust-version bootstrap-version 1 patch))
102
103(define rustc-bootstrap
104 (package
105 (name "rustc-bootstrap")
106 (version %rust-bootstrap-binaries-version)
107 (source %rust-bootstrap-binaries)
108 (build-system gnu-build-system)
109 (native-inputs
110 `(("patchelf" ,patchelf)))
111 (inputs
112 `(("gcc:lib" ,(canonical-package gcc) "lib")
113 ("zlib" ,zlib)))
114 (arguments
115 `(#:tests? #f
116 #:strip-binaries? #f
423f9e44
DC
117 #:phases
118 (modify-phases %standard-phases
119 (delete 'configure)
120 (delete 'build)
121 (replace 'install
122 (lambda* (#:key inputs outputs #:allow-other-keys)
123 (let* ((out (assoc-ref outputs "out"))
124 (gcc:lib (assoc-ref inputs "gcc:lib"))
125 (libc (assoc-ref inputs "libc"))
126 (zlib (assoc-ref inputs "zlib"))
d53fb678 127 (ld-so (string-append libc ,(glibc-dynamic-linker)))
423f9e44
DC
128 (rpath (string-append out "/lib:" zlib "/lib:"
129 libc "/lib:" gcc:lib "/lib"))
130 (rustc (string-append out "/bin/rustc"))
131 (rustdoc (string-append out "/bin/rustdoc")))
132 (system* "bash" "install.sh"
133 (string-append "--prefix=" out)
134 (string-append "--components=rustc,"
d53fb678 135 "rust-std-" %host-type))
423f9e44
DC
136 (for-each (lambda (file)
137 (system* "patchelf" "--set-rpath" rpath file))
138 (cons* rustc rustdoc (find-files out "\\.so$")))
139 (for-each (lambda (file)
140 (system* "patchelf" "--set-interpreter" ld-so file))
141 (list rustc rustdoc))))))))
423f9e44
DC
142 (home-page "https://www.rust-lang.org")
143 (synopsis "Prebuilt rust compiler")
144 (description "This package provides a pre-built @command{rustc} compiler,
145which can in turn be used to build the final Rust compiler.")
146 (license license:asl2.0)))
147
3b7ccbe9 148(define cargo-bootstrap
423f9e44
DC
149 (package
150 (name "cargo-bootstrap")
d53fb678 151 (version (cargo-version %rust-bootstrap-binaries-version 1))
423f9e44
DC
152 (source %rust-bootstrap-binaries)
153 (build-system gnu-build-system)
154 (native-inputs
155 `(("patchelf" ,patchelf)))
156 (inputs
157 `(("gcc:lib" ,(canonical-package gcc) "lib")))
158 (arguments
159 `(#:tests? #f
160 #:strip-binaries? #f
423f9e44
DC
161 #:phases
162 (modify-phases %standard-phases
163 (delete 'configure)
164 (delete 'build)
165 (replace 'install
166 (lambda* (#:key inputs outputs #:allow-other-keys)
167 (let* ((out (assoc-ref outputs "out"))
168 (gcc:lib (assoc-ref inputs "gcc:lib"))
169 (libc (assoc-ref inputs "libc"))
d53fb678 170 (ld-so (string-append libc ,(glibc-dynamic-linker)))
423f9e44
DC
171 (rpath (string-append out "/lib:" libc "/lib:"
172 gcc:lib "/lib"))
173 (cargo (string-append out "/bin/cargo")))
174 (system* "bash" "install.sh"
175 (string-append "--prefix=" out)
176 "--components=cargo")
177 (system* "patchelf"
178 "--set-interpreter" ld-so
179 "--set-rpath" rpath
180 cargo)))))))
423f9e44
DC
181 (home-page "https://www.rust-lang.org")
182 (synopsis "Prebuilt cargo package manager")
183 (description "This package provides a pre-built @command{cargo} package
184manager, which is required to build itself.")
185 (license license:asl2.0)))
186
187(define rust-bootstrap
188 (package
189 (name "rust-bootstrap")
190 (version %rust-bootstrap-binaries-version)
191 (source #f)
192 (build-system trivial-build-system)
193 (propagated-inputs
194 `(("rustc-bootstrap" ,rustc-bootstrap)
195 ("cargo-bootstrap" ,cargo-bootstrap)
196 ("gcc" ,(canonical-package gcc))))
197 (arguments
198 `(#:modules ((guix build utils))
199 #:builder
200 (begin
201 (use-modules (guix build utils))
202 (let ((out (assoc-ref %outputs "out"))
203 (gcc (assoc-ref %build-inputs "gcc")))
204 (mkdir-p (string-append out "/bin"))
205 ;; Rust requires a C toolchain for linking. The prebuilt
206 ;; binaries expect a compiler called cc. Thus symlink gcc
207 ;; to cc.
208 (symlink (string-append gcc "/bin/gcc")
209 (string-append out "/bin/cc"))))))
210 (home-page "https://www.rust-lang.org")
211 (synopsis "Rust bootstrapping meta package")
212 (description "Meta package for a rust environment. Provides pre-compiled
213rustc-bootstrap and cargo-bootstrap packages.")
214 (license license:asl2.0)))
d53fb678 215\f
ecee2147
DC
216(define-public rustc
217 (package
218 (name "rustc")
d53fb678 219 (version (rustc-version %rust-bootstrap-binaries-version 1))
ecee2147
DC
220 (source (origin
221 (method url-fetch)
222 (uri (string-append
223 "https://static.rust-lang.org/dist/"
224 "rustc-" version "-src.tar.gz"))
225 (sha256
226 (base32
d53fb678
NM
227 "1lrzzp0nh7s61wgfs2h6ilaqi6iq89f1pd1yaf65l87bssyl4ylb"))
228 (modules '((guix build utils)))
229 (snippet
230 `(begin
231 (delete-file-recursively "src/llvm")
232 #t))))
ecee2147
DC
233 (build-system gnu-build-system)
234 (native-inputs
5f3d46ce
DM
235 `(("bison" ,bison) ; For the tests
236 ("cmake" ,cmake)
237 ("flex" ,flex) ; For the tests
d53fb678 238 ("gdb" ,gdb) ; For the tests
ecee2147 239 ("git" ,git)
5f3d46ce 240 ("procps" ,procps) ; For the tests
ecee2147
DC
241 ("python-2" ,python-2)
242 ("rust-bootstrap" ,rust-bootstrap)
243 ("which" ,which)))
244 (inputs
d53fb678 245 `(("jemalloc" ,jemalloc-4.5.0)
5f3d46ce 246 ("llvm" ,llvm-3.9.1)))
ecee2147 247 (arguments
d53fb678
NM
248 `(#:imported-modules ,%cargo-build-system-modules ;for `generate-checksums'
249 #:phases
ecee2147 250 (modify-phases %standard-phases
ecee2147
DC
251 (add-after 'unpack 'set-env
252 (lambda _
253 (setenv "SHELL" (which "sh"))
326249ba 254 (setenv "CONFIG_SHELL" (which "sh"))
d53fb678
NM
255 ;; guix llvm-3.9.1 package installs only shared libraries
256 (setenv "LLVM_LINK_SHARED" "1")
326249ba 257 #t))
84aac61c
DM
258 (add-after 'unpack 'patch-tests
259 (lambda* (#:key inputs #:allow-other-keys)
9b7a9580 260 (let ((bash (assoc-ref inputs "bash")))
d53fb678
NM
261 (substitute* "src/build_helper/lib.rs"
262 ;; In same folder as gcc there is only "gcc-ar" utility
263 (("file\\.push_str\\(\"ar\"\\);") "file.push_str(\"gcc-ar\");"))
9b7a9580 264 (substitute* "src/libstd/process.rs"
5f3d46ce
DM
265 ;; The newline is intentional.
266 ;; There's a line length "tidy" check in Rust which would
267 ;; fail otherwise.
d53fb678
NM
268 (("\"/bin/sh\"") (string-append "\n\"" bash "/bin/sh\"")))
269 (substitute* "src/libstd/net/tcp.rs"
270 ;; There is no network in build environment
271 (("fn connect_timeout_unroutable")
272 "#[ignore]\nfn connect_timeout_unroutable"))
273 ;; <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00222.html>
5f3d46ce 274 (substitute* "src/libstd/sys/unix/process/process_common.rs"
d53fb678 275 (("fn test_process_mask") "#[ignore]\nfn test_process_mask"))
5f3d46ce 276 ;; Our ld-wrapper cannot process non-UTF8 bytes in LIBRARY_PATH.
d53fb678 277 ;; <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00193.html>
5f3d46ce 278 (delete-file-recursively "src/test/run-make/linker-output-non-utf8")
d53fb678
NM
279 (substitute* "src/build_helper/lib.rs"
280 ;; Bug in Rust code.
281 ;; Current implementation assume that if dst not exist then it's mtime
282 ;; is 0, but in same time "src" have 0 mtime in guix build!
283 (("let threshold = mtime\\(dst\\);")
284 "if !dst.exists() {\nreturn false\n}\n let threshold = mtime(dst);"))
9b7a9580 285 #t)))
d53fb678
NM
286 (add-after 'patch-source-shebangs 'patch-cargo-checksums
287 (lambda* (#:key inputs #:allow-other-keys)
288 (substitute* "src/Cargo.lock"
289 (("(\"checksum .* = )\".*\"" all name)
290 (string-append name "\"" ,%cargo-reference-hash "\"")))
291 (for-each
292 (lambda (filename)
293 (use-modules (guix build cargo-build-system))
294 (delete-file filename)
295 (let* ((dir (dirname filename)))
296 (display (string-append
297 "patch-cargo-checksums: generate-checksums for "
298 dir "\n"))
299 (generate-checksums dir ,%cargo-reference-project-file)))
300 (find-files "src/vendor" ".cargo-checksum.json"))
301 #t))
ecee2147
DC
302 (replace 'configure
303 (lambda* (#:key inputs outputs #:allow-other-keys)
304 (let* ((out (assoc-ref outputs "out"))
305 (gcc (assoc-ref inputs "gcc"))
d53fb678 306 (gdb (assoc-ref inputs "gdb"))
5d18d776 307 (binutils (assoc-ref inputs "binutils"))
ecee2147
DC
308 (python (assoc-ref inputs "python-2"))
309 (rustc (assoc-ref inputs "rustc-bootstrap"))
d53fb678 310 (cargo (assoc-ref inputs "cargo-bootstrap"))
ecee2147 311 (llvm (assoc-ref inputs "llvm"))
d53fb678
NM
312 (jemalloc (assoc-ref inputs "jemalloc")))
313 (call-with-output-file "config.toml"
314 (lambda (port)
315 (display (string-append "
316[llvm]
317[build]
318cargo = \"" cargo "/bin/cargo" "\"
319rustc = \"" rustc "/bin/rustc" "\"
320python = \"" python "/bin/python2" "\"
321gdb = \"" gdb "/bin/gdb" "\"
322vendor = true
323submodules = false
324[install]
325prefix = \"" out "\"
326[rust]
327default-linker = \"" gcc "/bin/gcc" "\"
328default-ar = \"" binutils "/bin/ar" "\"
329channel = \"stable\"
330rpath = true
331# There is 2 failed codegen tests:
332# codegen/mainsubprogram.rs and codegen/mainsubprogramstart.rs
333# This tests required patched LLVM
334codegen-tests = false
335[target." %host-type "]
336llvm-config = \"" llvm "/bin/llvm-config" "\"
337cc = \"" gcc "/bin/gcc" "\"
338cxx = \"" gcc "/bin/g++" "\"
339jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
340[dist]
341") port)))
342 #t)))
343 (add-before 'build 'reset-timestamps-after-changes
344 (lambda* (#:key inputs outputs #:allow-other-keys)
345 (define ref (stat "README.md"))
346 (for-each
347 (lambda (filename)
348 (set-file-time filename ref))
349 (find-files "." #:directories? #t))
350 #t))
351 (replace 'build
352 (lambda* (#:key inputs outputs #:allow-other-keys)
353 (zero? (system* "./x.py" "build"))))
354 (replace 'check
355 (lambda* (#:key inputs outputs #:allow-other-keys)
356 (zero? (system* "./x.py" "test"))))
357 (replace 'install
358 (lambda* (#:key inputs outputs #:allow-other-keys)
359 (zero? (system* "./x.py" "install"))))
5d18d776
DC
360 (add-after 'install 'wrap-rustc
361 (lambda* (#:key inputs outputs #:allow-other-keys)
362 (let ((out (assoc-ref outputs "out"))
363 (libc (assoc-ref inputs "libc"))
364 (ld-wrapper (assoc-ref inputs "ld-wrapper")))
365 ;; Let gcc find ld and libc startup files.
366 (wrap-program (string-append out "/bin/rustc")
367 `("PATH" ":" prefix (,(string-append ld-wrapper "/bin")))
326249ba
DM
368 `("LIBRARY_PATH" ":" suffix (,(string-append libc "/lib"))))
369 #t))))))
fa73a7c1
BW
370 ;; rustc invokes gcc, so we need to set its search paths accordingly.
371 (native-search-paths (package-native-search-paths gcc))
ecee2147
DC
372 (synopsis "Compiler for the Rust progamming language")
373 (description "Rust is a systems programming language that provides memory
374safety and thread safety guarantees.")
375 (home-page "https://www.rust-lang.org")
376 ;; Dual licensed.
377 (license (list license:asl2.0 license:expat))))
b5a09649 378
f0eb0a4b
DM
379;; This tries very hard not to get into a cyclic dependency like this:
380;; cargo <- cargo-build-system <- cargo.
b5a09649
DC
381(define-public cargo
382 (package
383 (name "cargo")
d53fb678 384 (version (cargo-version (rustc-version %rust-bootstrap-binaries-version) 0))
b5a09649
DC
385 (source (origin
386 (method url-fetch)
893bc3f4
DM
387 (uri (string-append "https://github.com/rust-lang/cargo/archive/"
388 version ".tar.gz"))
b5a09649
DC
389 (file-name (string-append name "-" version ".tar.gz"))
390 (sha256
391 (base32
d53fb678 392 "0kr7rml7v2bm7zl8jcb3056h63zpyy9m08s212i8vfwxf6lf5fzl"))))
b5a09649
DC
393 (build-system cargo-build-system)
394 (propagated-inputs
395 `(("cmake" ,cmake)
396 ("pkg-config" ,pkg-config)))
397 (inputs
398 `(("curl" ,curl)
399 ("libgit2" ,libgit2)
400 ("libssh2" ,libssh2)
401 ("openssl" ,openssl)
402 ("python-2" ,python-2)
403 ("zlib" ,zlib)))
893bc3f4 404 (native-inputs
d53fb678
NM
405 `(("git" ,git) ; required for tests
406 ;; Next dependencies generated with next command:
407 ;; cat Cargo.lock | awk '
408 ;; /^"checksum/
409 ;; { oname=name=$2; vers=$3; hash=$6;
410 ;; if (ns[name] != 1) { ns[name]=1; } else { name = name "-" vers; }
411 ;; print " (\"rust-" name "\"";
412 ;; print " ,(origin";
413 ;; print " (method url-fetch)";
414 ;; print " (uri (crate-uri \"" oname "\" \"" vers "\"))";
0d570683 415 ;; print " (file-name \"rust-" oname "\-\" vers "\")
d53fb678
NM
416 ;; print " (sha256";
417 ;; print " (base16-string->bytevector";
418 ;; print " " hash "))))"
419 ;; }'
420 ("rust-advapi32-sys"
893bc3f4
DM
421 ,(origin
422 (method url-fetch)
d53fb678 423 (uri (crate-uri "advapi32-sys" "0.2.0"))
0d570683 424 (file-name "rust-advapi32-sys-0.2.0")
893bc3f4 425 (sha256
d53fb678
NM
426 (base16-string->bytevector
427 "e06588080cb19d0acb6739808aafa5f26bfb2ca015b2b6370028b44cf7cb8a9a"))))
428 ("rust-aho-corasick"
893bc3f4
DM
429 ,(origin
430 (method url-fetch)
d53fb678 431 (uri (crate-uri "aho-corasick" "0.5.3"))
0d570683 432 (file-name "rust-aho-corasick-0.5.3")
893bc3f4 433 (sha256
d53fb678
NM
434 (base16-string->bytevector
435 "ca972c2ea5f742bfce5687b9aef75506a764f61d37f8f649047846a9686ddb66"))))
436 ("rust-aho-corasick-0.6.3"
893bc3f4
DM
437 ,(origin
438 (method url-fetch)
d53fb678 439 (uri (crate-uri "aho-corasick" "0.6.3"))
0d570683 440 (file-name "rust-aho-corasick-0.6.3")
893bc3f4 441 (sha256
d53fb678
NM
442 (base16-string->bytevector
443 "500909c4f87a9e52355b26626d890833e9e1d53ac566db76c36faa984b889699"))))
444 ("rust-atty"
445 ,(origin
446 (method url-fetch)
447 (uri (crate-uri "atty" "0.2.3"))
0d570683 448 (file-name "rust-atty-0.2.3")
d53fb678
NM
449 (sha256
450 (base16-string->bytevector
451 "21e50800ec991574876040fff8ee46b136a53e985286fbe6a3bdfe6421b78860"))))
452 ("rust-backtrace"
453 ,(origin
454 (method url-fetch)
455 (uri (crate-uri "backtrace" "0.3.3"))
0d570683 456 (file-name "rust-backtrace-0.3.3")
d53fb678
NM
457 (sha256
458 (base16-string->bytevector
459 "99f2ce94e22b8e664d95c57fff45b98a966c2252b60691d0b7aeeccd88d70983"))))
460 ("rust-backtrace-sys"
461 ,(origin
462 (method url-fetch)
463 (uri (crate-uri "backtrace-sys" "0.1.14"))
0d570683 464 (file-name "rust-backtrace-sys-0.1.14")
d53fb678
NM
465 (sha256
466 (base16-string->bytevector
467 "c63ea141ef8fdb10409d0f5daf30ac51f84ef43bff66f16627773d2a292cd189"))))
893bc3f4
DM
468 ("rust-bitflags"
469 ,(origin
470 (method url-fetch)
471 (uri (crate-uri "bitflags" "0.7.0"))
0d570683 472 (file-name "rust-bitflags-0.7.0")
893bc3f4 473 (sha256
d53fb678
NM
474 (base16-string->bytevector
475 "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d"))))
476 ("rust-bitflags-0.9.1"
893bc3f4
DM
477 ,(origin
478 (method url-fetch)
d53fb678 479 (uri (crate-uri "bitflags" "0.9.1"))
0d570683 480 (file-name "rust-bitflags-0.9.1")
893bc3f4 481 (sha256
d53fb678
NM
482 (base16-string->bytevector
483 "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5"))))
484 ("rust-bufstream"
893bc3f4
DM
485 ,(origin
486 (method url-fetch)
d53fb678 487 (uri (crate-uri "bufstream" "0.1.3"))
0d570683 488 (file-name "rust-bufstream-0.1.3")
893bc3f4 489 (sha256
d53fb678
NM
490 (base16-string->bytevector
491 "f2f382711e76b9de6c744cc00d0497baba02fb00a787f088c879f01d09468e32"))))
492 ("rust-cc"
893bc3f4
DM
493 ,(origin
494 (method url-fetch)
d53fb678 495 (uri (crate-uri "cc" "1.0.0"))
0d570683 496 (file-name "rust-cc-1.0.0")
893bc3f4 497 (sha256
d53fb678
NM
498 (base16-string->bytevector
499 "7db2f146208d7e0fbee761b09cd65a7f51ccc38705d4e7262dad4d73b12a76b1"))))
500 ("rust-cfg-if"
893bc3f4
DM
501 ,(origin
502 (method url-fetch)
d53fb678 503 (uri (crate-uri "cfg-if" "0.1.2"))
0d570683 504 (file-name "rust-cfg-if-0.1.2")
893bc3f4 505 (sha256
d53fb678
NM
506 (base16-string->bytevector
507 "d4c819a1287eb618df47cc647173c5c4c66ba19d888a6e50d605672aed3140de"))))
508 ("rust-cmake"
893bc3f4
DM
509 ,(origin
510 (method url-fetch)
d53fb678 511 (uri (crate-uri "cmake" "0.1.26"))
0d570683 512 (file-name "rust-cmake-0.1.26")
893bc3f4 513 (sha256
d53fb678
NM
514 (base16-string->bytevector
515 "357c07e7a1fc95732793c1edb5901e1a1f305cfcf63a90eb12dbd22bdb6b789d"))))
516 ("rust-commoncrypto"
893bc3f4
DM
517 ,(origin
518 (method url-fetch)
d53fb678 519 (uri (crate-uri "commoncrypto" "0.2.0"))
0d570683 520 (file-name "rust-commoncrypto-0.2.0")
893bc3f4 521 (sha256
d53fb678
NM
522 (base16-string->bytevector
523 "d056a8586ba25a1e4d61cb090900e495952c7886786fc55f909ab2f819b69007"))))
524 ("rust-commoncrypto-sys"
893bc3f4
DM
525 ,(origin
526 (method url-fetch)
d53fb678 527 (uri (crate-uri "commoncrypto-sys" "0.2.0"))
0d570683 528 (file-name "rust-commoncrypto-sys-0.2.0")
893bc3f4 529 (sha256
d53fb678
NM
530 (base16-string->bytevector
531 "1fed34f46747aa73dfaa578069fd8279d2818ade2b55f38f22a9401c7f4083e2"))))
532 ("rust-conv"
893bc3f4
DM
533 ,(origin
534 (method url-fetch)
d53fb678 535 (uri (crate-uri "conv" "0.3.3"))
0d570683 536 (file-name "rust-conv-0.3.3")
893bc3f4 537 (sha256
d53fb678
NM
538 (base16-string->bytevector
539 "78ff10625fd0ac447827aa30ea8b861fead473bb60aeb73af6c1c58caf0d1299"))))
540 ("rust-core-foundation"
893bc3f4
DM
541 ,(origin
542 (method url-fetch)
d53fb678 543 (uri (crate-uri "core-foundation" "0.4.4"))
0d570683 544 (file-name "rust-core-foundation-0.4.4")
893bc3f4 545 (sha256
d53fb678
NM
546 (base16-string->bytevector
547 "5909502e547762013619f4c4e01cc7393c20fe2d52d7fa471c1210adb2320dc7"))))
548 ("rust-core-foundation-sys"
893bc3f4
DM
549 ,(origin
550 (method url-fetch)
d53fb678 551 (uri (crate-uri "core-foundation-sys" "0.4.4"))
0d570683 552 (file-name "rust-core-foundation-sys-0.4.4")
893bc3f4 553 (sha256
d53fb678
NM
554 (base16-string->bytevector
555 "bc9fb3d6cb663e6fd7cf1c63f9b144ee2b1e4a78595a0451dd34bff85b9a3387"))))
556 ("rust-crossbeam"
893bc3f4
DM
557 ,(origin
558 (method url-fetch)
d53fb678 559 (uri (crate-uri "crossbeam" "0.2.10"))
0d570683 560 (file-name "rust-crossbeam-0.2.10")
893bc3f4 561 (sha256
d53fb678
NM
562 (base16-string->bytevector
563 "0c5ea215664ca264da8a9d9c3be80d2eaf30923c259d03e870388eb927508f97"))))
564 ("rust-crossbeam-0.3.0"
565 ,(origin
566 (method url-fetch)
567 (uri (crate-uri "crossbeam" "0.3.0"))
0d570683 568 (file-name "rust-crossbeam-0.3.0")
d53fb678
NM
569 (sha256
570 (base16-string->bytevector
571 "8837ab96533202c5b610ed44bc7f4183e7957c1c8f56e8cc78bb098593c8ba0a"))))
572 ("rust-crypto-hash"
573 ,(origin
574 (method url-fetch)
575 (uri (crate-uri "crypto-hash" "0.3.0"))
0d570683 576 (file-name "rust-crypto-hash-0.3.0")
d53fb678
NM
577 (sha256
578 (base16-string->bytevector
579 "34903878eec1694faf53cae8473a088df333181de421d4d3d48061d6559fe602"))))
580 ("rust-curl"
893bc3f4
DM
581 ,(origin
582 (method url-fetch)
d53fb678 583 (uri (crate-uri "curl" "0.4.8"))
0d570683 584 (file-name "rust-curl-0.4.8")
893bc3f4 585 (sha256
d53fb678
NM
586 (base16-string->bytevector
587 "7034c534a1d7d22f7971d6088aa9d281d219ef724026c3428092500f41ae9c2c"))))
893bc3f4
DM
588 ("rust-curl-sys"
589 ,(origin
590 (method url-fetch)
d53fb678 591 (uri (crate-uri "curl-sys" "0.3.15"))
0d570683 592 (file-name "rust-curl-sys-0.3.15")
893bc3f4 593 (sha256
d53fb678
NM
594 (base16-string->bytevector
595 "4bee31aa3a079d5f3ff9579ea4dcfb1b1a17a40886f5f467436d383e78134b55"))))
596 ("rust-custom_derive"
9ea0cdaf
DM
597 ,(origin
598 (method url-fetch)
d53fb678 599 (uri (crate-uri "custom_derive" "0.1.7"))
0d570683 600 (file-name "rust-custom_derive-0.1.7")
9ea0cdaf 601 (sha256
d53fb678
NM
602 (base16-string->bytevector
603 "ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9"))))
604 ("rust-dbghelp-sys"
9ea0cdaf
DM
605 ,(origin
606 (method url-fetch)
d53fb678 607 (uri (crate-uri "dbghelp-sys" "0.2.0"))
0d570683 608 (file-name "rust-dbghelp-sys-0.2.0")
9ea0cdaf 609 (sha256
d53fb678
NM
610 (base16-string->bytevector
611 "97590ba53bcb8ac28279161ca943a924d1fd4a8fb3fa63302591647c4fc5b850"))))
612 ("rust-docopt"
893bc3f4
DM
613 ,(origin
614 (method url-fetch)
d53fb678 615 (uri (crate-uri "docopt" "0.8.1"))
0d570683 616 (file-name "rust-docopt-0.8.1")
893bc3f4 617 (sha256
d53fb678
NM
618 (base16-string->bytevector
619 "3b5b93718f8b3e5544fcc914c43de828ca6c6ace23e0332c6080a2977b49787a"))))
620 ("rust-dtoa"
893bc3f4
DM
621 ,(origin
622 (method url-fetch)
d53fb678 623 (uri (crate-uri "dtoa" "0.4.2"))
0d570683 624 (file-name "rust-dtoa-0.4.2")
893bc3f4 625 (sha256
d53fb678
NM
626 (base16-string->bytevector
627 "09c3753c3db574d215cba4ea76018483895d7bff25a31b49ba45db21c48e50ab"))))
628 ("rust-env_logger"
629 ,(origin
630 (method url-fetch)
631 (uri (crate-uri "env_logger" "0.4.3"))
0d570683 632 (file-name "rust-env_logger-0.4.3")
d53fb678
NM
633 (sha256
634 (base16-string->bytevector
635 "3ddf21e73e016298f5cb37d6ef8e8da8e39f91f9ec8b0df44b7deb16a9f8cd5b"))))
636 ("rust-error-chain"
893bc3f4
DM
637 ,(origin
638 (method url-fetch)
d53fb678 639 (uri (crate-uri "error-chain" "0.11.0"))
0d570683 640 (file-name "rust-error-chain-0.11.0")
893bc3f4 641 (sha256
d53fb678
NM
642 (base16-string->bytevector
643 "ff511d5dc435d703f4971bc399647c9bc38e20cb41452e3b9feb4765419ed3f3"))))
893bc3f4
DM
644 ("rust-filetime"
645 ,(origin
646 (method url-fetch)
d53fb678 647 (uri (crate-uri "filetime" "0.1.12"))
0d570683 648 (file-name "rust-filetime-0.1.12")
893bc3f4 649 (sha256
d53fb678
NM
650 (base16-string->bytevector
651 "6ab199bf38537c6f38792669e081e0bb278b9b7405bba2642e4e5d15bf732c0e"))))
652 ("rust-flate2"
653 ,(origin
654 (method url-fetch)
655 (uri (crate-uri "flate2" "0.2.20"))
0d570683 656 (file-name "rust-flate2-0.2.20")
d53fb678
NM
657 (sha256
658 (base16-string->bytevector
659 "e6234dd4468ae5d1e2dbb06fe2b058696fdc50a339c68a393aefbf00bc81e423"))))
660 ("rust-fnv"
893bc3f4
DM
661 ,(origin
662 (method url-fetch)
d53fb678 663 (uri (crate-uri "fnv" "1.0.5"))
0d570683 664 (file-name "rust-fnv-1.0.5")
893bc3f4 665 (sha256
d53fb678
NM
666 (base16-string->bytevector
667 "6cc484842f1e2884faf56f529f960cc12ad8c71ce96cc7abba0a067c98fee344"))))
668 ("rust-foreign-types"
669 ,(origin
670 (method url-fetch)
671 (uri (crate-uri "foreign-types" "0.2.0"))
0d570683 672 (file-name "rust-foreign-types-0.2.0")
d53fb678
NM
673 (sha256
674 (base16-string->bytevector
675 "3e4056b9bd47f8ac5ba12be771f77a0dae796d1bbaaf5fd0b9c2d38b69b8a29d"))))
676 ("rust-fs2"
677 ,(origin
678 (method url-fetch)
679 (uri (crate-uri "fs2" "0.4.2"))
0d570683 680 (file-name "rust-fs2-0.4.2")
d53fb678
NM
681 (sha256
682 (base16-string->bytevector
683 "9ab76cfd2aaa59b7bf6688ad9ba15bbae64bff97f04ea02144cfd3443e5c2866"))))
684 ("rust-git2"
685 ,(origin
686 (method url-fetch)
687 (uri (crate-uri "git2" "0.6.8"))
0d570683 688 (file-name "rust-git2-0.6.8")
d53fb678
NM
689 (sha256
690 (base16-string->bytevector
691 "0c1c0203d653f4140241da0c1375a404f0a397249ec818cd2076c6280c50f6fa"))))
692 ("rust-git2-curl"
693 ,(origin
694 (method url-fetch)
695 (uri (crate-uri "git2-curl" "0.7.0"))
0d570683 696 (file-name "rust-git2-curl-0.7.0")
d53fb678
NM
697 (sha256
698 (base16-string->bytevector
699 "68676bc784bf0bef83278898929bf64a251e87c0340723d0b93fa096c9c5bf8e"))))
893bc3f4
DM
700 ("rust-glob"
701 ,(origin
702 (method url-fetch)
703 (uri (crate-uri "glob" "0.2.11"))
0d570683 704 (file-name "rust-glob-0.2.11")
893bc3f4 705 (sha256
d53fb678
NM
706 (base16-string->bytevector
707 "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb"))))
708 ("rust-globset"
893bc3f4
DM
709 ,(origin
710 (method url-fetch)
d53fb678 711 (uri (crate-uri "globset" "0.2.0"))
0d570683 712 (file-name "rust-globset-0.2.0")
893bc3f4 713 (sha256
d53fb678
NM
714 (base16-string->bytevector
715 "feeb1b6840809ef5efcf7a4a990bc4e1b7ee3df8cf9e2379a75aeb2ba42ac9c3"))))
716 ("rust-hamcrest"
893bc3f4
DM
717 ,(origin
718 (method url-fetch)
d53fb678 719 (uri (crate-uri "hamcrest" "0.1.1"))
0d570683 720 (file-name "rust-hamcrest-0.1.1")
893bc3f4 721 (sha256
d53fb678
NM
722 (base16-string->bytevector
723 "bf088f042a467089e9baa4972f57f9247e42a0cc549ba264c7a04fbb8ecb89d4"))))
724 ("rust-hex"
893bc3f4
DM
725 ,(origin
726 (method url-fetch)
d53fb678 727 (uri (crate-uri "hex" "0.2.0"))
0d570683 728 (file-name "rust-hex-0.2.0")
893bc3f4 729 (sha256
d53fb678
NM
730 (base16-string->bytevector
731 "d6a22814455d41612f41161581c2883c0c6a1c41852729b17d5ed88f01e153aa"))))
732 ("rust-home"
893bc3f4
DM
733 ,(origin
734 (method url-fetch)
d53fb678 735 (uri (crate-uri "home" "0.3.0"))
0d570683 736 (file-name "rust-home-0.3.0")
893bc3f4 737 (sha256
d53fb678
NM
738 (base16-string->bytevector
739 "9f25ae61099d8f3fee8b483df0bd4ecccf4b2731897aad40d50eca1b641fe6db"))))
740 ("rust-idna"
893bc3f4
DM
741 ,(origin
742 (method url-fetch)
d53fb678 743 (uri (crate-uri "idna" "0.1.4"))
0d570683 744 (file-name "rust-idna-0.1.4")
893bc3f4 745 (sha256
d53fb678
NM
746 (base16-string->bytevector
747 "014b298351066f1512874135335d62a789ffe78a9974f94b43ed5621951eaf7d"))))
748 ("rust-ignore"
893bc3f4
DM
749 ,(origin
750 (method url-fetch)
d53fb678 751 (uri (crate-uri "ignore" "0.2.2"))
0d570683 752 (file-name "rust-ignore-0.2.2")
893bc3f4 753 (sha256
d53fb678
NM
754 (base16-string->bytevector
755 "b3fcaf2365eb14b28ec7603c98c06cc531f19de9eb283d89a3dff8417c8c99f5"))))
756 ("rust-itoa"
757 ,(origin
758 (method url-fetch)
759 (uri (crate-uri "itoa" "0.3.4"))
0d570683 760 (file-name "rust-itoa-0.3.4")
d53fb678
NM
761 (sha256
762 (base16-string->bytevector
763 "8324a32baf01e2ae060e9de58ed0bc2320c9a2833491ee36cd3b4c414de4db8c"))))
764 ("rust-jobserver"
893bc3f4
DM
765 ,(origin
766 (method url-fetch)
d53fb678 767 (uri (crate-uri "jobserver" "0.1.6"))
0d570683 768 (file-name "rust-jobserver-0.1.6")
893bc3f4 769 (sha256
d53fb678
NM
770 (base16-string->bytevector
771 "443ae8bc0af6c106e6e8b77e04684faecc1a5ce94e058f4c2b0a037b0ea1b133"))))
772 ("rust-kernel32-sys"
773 ,(origin
774 (method url-fetch)
775 (uri (crate-uri "kernel32-sys" "0.2.2"))
0d570683 776 (file-name "rust-kernel32-sys-0.2.2")
d53fb678
NM
777 (sha256
778 (base16-string->bytevector
779 "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"))))
780 ("rust-lazy_static"
781 ,(origin
782 (method url-fetch)
783 (uri (crate-uri "lazy_static" "0.2.9"))
0d570683 784 (file-name "rust-lazy_static-0.2.9")
d53fb678
NM
785 (sha256
786 (base16-string->bytevector
787 "c9e5e58fa1a4c3b915a561a78a22ee0cac6ab97dca2504428bc1cb074375f8d5"))))
788 ("rust-libc"
789 ,(origin
790 (method url-fetch)
791 (uri (crate-uri "libc" "0.2.31"))
0d570683 792 (file-name "rust-libc-0.2.31")
d53fb678
NM
793 (sha256
794 (base16-string->bytevector
795 "d1419b2939a0bc44b77feb34661583c7546b532b192feab36249ab584b86856c"))))
796 ("rust-libgit2-sys"
797 ,(origin
798 (method url-fetch)
799 (uri (crate-uri "libgit2-sys" "0.6.16"))
0d570683 800 (file-name "rust-libgit2-sys-0.6.16")
d53fb678
NM
801 (sha256
802 (base16-string->bytevector
803 "6f74b4959cef96898f5123148724fc7dee043b9a6b99f219d948851bfbe53cb2"))))
804 ("rust-libssh2-sys"
805 ,(origin
806 (method url-fetch)
807 (uri (crate-uri "libssh2-sys" "0.2.6"))
0d570683 808 (file-name "rust-libssh2-sys-0.2.6")
d53fb678
NM
809 (sha256
810 (base16-string->bytevector
811 "0db4ec23611747ef772db1c4d650f8bd762f07b461727ec998f953c614024b75"))))
812 ("rust-libz-sys"
813 ,(origin
814 (method url-fetch)
815 (uri (crate-uri "libz-sys" "1.0.17"))
0d570683 816 (file-name "rust-libz-sys-1.0.17")
d53fb678
NM
817 (sha256
818 (base16-string->bytevector
819 "44ebbc760fd2d2f4d93de09a0e13d97e057612052e871da9985cedcb451e6bd5"))))
820 ("rust-log"
821 ,(origin
822 (method url-fetch)
823 (uri (crate-uri "log" "0.3.8"))
0d570683 824 (file-name "rust-log-0.3.8")
d53fb678
NM
825 (sha256
826 (base16-string->bytevector
827 "880f77541efa6e5cc74e76910c9884d9859683118839d6a1dc3b11e63512565b"))))
828 ("rust-magenta"
829 ,(origin
830 (method url-fetch)
831 (uri (crate-uri "magenta" "0.1.1"))
0d570683 832 (file-name "rust-magenta-0.1.1")
d53fb678
NM
833 (sha256
834 (base16-string->bytevector
835 "4bf0336886480e671965f794bc9b6fce88503563013d1bfb7a502c81fe3ac527"))))
836 ("rust-magenta-sys"
837 ,(origin
838 (method url-fetch)
839 (uri (crate-uri "magenta-sys" "0.1.1"))
0d570683 840 (file-name "rust-magenta-sys-0.1.1")
d53fb678
NM
841 (sha256
842 (base16-string->bytevector
843 "40d014c7011ac470ae28e2f76a02bfea4a8480f73e701353b49ad7a8d75f4699"))))
844 ("rust-matches"
845 ,(origin
846 (method url-fetch)
847 (uri (crate-uri "matches" "0.1.6"))
0d570683 848 (file-name "rust-matches-0.1.6")
d53fb678
NM
849 (sha256
850 (base16-string->bytevector
851 "100aabe6b8ff4e4a7e32c1c13523379802df0772b82466207ac25b013f193376"))))
852 ("rust-memchr"
853 ,(origin
854 (method url-fetch)
855 (uri (crate-uri "memchr" "0.1.11"))
0d570683 856 (file-name "rust-memchr-0.1.11")
d53fb678
NM
857 (sha256
858 (base16-string->bytevector
859 "d8b629fb514376c675b98c1421e80b151d3817ac42d7c667717d282761418d20"))))
860 ("rust-memchr-1.0.1"
861 ,(origin
862 (method url-fetch)
863 (uri (crate-uri "memchr" "1.0.1"))
0d570683 864 (file-name "rust-memchr-1.0.1")
d53fb678
NM
865 (sha256
866 (base16-string->bytevector
867 "1dbccc0e46f1ea47b9f17e6d67c5a96bd27030519c519c9c91327e31275a47b4"))))
868 ("rust-miniz-sys"
869 ,(origin
870 (method url-fetch)
871 (uri (crate-uri "miniz-sys" "0.1.10"))
0d570683 872 (file-name "rust-miniz-sys-0.1.10")
d53fb678
NM
873 (sha256
874 (base16-string->bytevector
875 "609ce024854aeb19a0ef7567d348aaa5a746b32fb72e336df7fcc16869d7e2b4"))))
876 ("rust-miow"
877 ,(origin
878 (method url-fetch)
879 (uri (crate-uri "miow" "0.2.1"))
0d570683 880 (file-name "rust-miow-0.2.1")
d53fb678
NM
881 (sha256
882 (base16-string->bytevector
883 "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"))))
893bc3f4
DM
884 ("rust-net2"
885 ,(origin
886 (method url-fetch)
d53fb678 887 (uri (crate-uri "net2" "0.2.31"))
0d570683 888 (file-name "rust-net2-0.2.31")
893bc3f4 889 (sha256
d53fb678
NM
890 (base16-string->bytevector
891 "3a80f842784ef6c9a958b68b7516bc7e35883c614004dd94959a4dca1b716c09"))))
892 ("rust-num"
893bc3f4
DM
893 ,(origin
894 (method url-fetch)
d53fb678 895 (uri (crate-uri "num" "0.1.40"))
0d570683 896 (file-name "rust-num-0.1.40")
893bc3f4 897 (sha256
d53fb678
NM
898 (base16-string->bytevector
899 "a311b77ebdc5dd4cf6449d81e4135d9f0e3b153839ac90e648a8ef538f923525"))))
900 ("rust-num-bigint"
893bc3f4
DM
901 ,(origin
902 (method url-fetch)
d53fb678 903 (uri (crate-uri "num-bigint" "0.1.40"))
0d570683 904 (file-name "rust-num-bigint-0.1.40")
893bc3f4 905 (sha256
d53fb678
NM
906 (base16-string->bytevector
907 "8fd0f8dbb4c0960998958a796281d88c16fbe68d87b1baa6f31e2979e81fd0bd"))))
908 ("rust-num-complex"
893bc3f4
DM
909 ,(origin
910 (method url-fetch)
d53fb678 911 (uri (crate-uri "num-complex" "0.1.40"))
0d570683 912 (file-name "rust-num-complex-0.1.40")
893bc3f4 913 (sha256
d53fb678
NM
914 (base16-string->bytevector
915 "503e668405c5492d67cf662a81e05be40efe2e6bcf10f7794a07bd9865e704e6"))))
916 ("rust-num-integer"
893bc3f4
DM
917 ,(origin
918 (method url-fetch)
d53fb678 919 (uri (crate-uri "num-integer" "0.1.35"))
0d570683 920 (file-name "rust-num-integer-0.1.35")
d53fb678
NM
921 (sha256
922 (base16-string->bytevector
923 "d1452e8b06e448a07f0e6ebb0bb1d92b8890eea63288c0b627331d53514d0fba"))))
924 ("rust-num-iter"
925 ,(origin
926 (method url-fetch)
927 (uri (crate-uri "num-iter" "0.1.34"))
0d570683 928 (file-name "rust-num-iter-0.1.34")
d53fb678
NM
929 (sha256
930 (base16-string->bytevector
931 "7485fcc84f85b4ecd0ea527b14189281cf27d60e583ae65ebc9c088b13dffe01"))))
932 ("rust-num-rational"
933 ,(origin
934 (method url-fetch)
935 (uri (crate-uri "num-rational" "0.1.39"))
0d570683 936 (file-name "rust-num-rational-0.1.39")
d53fb678
NM
937 (sha256
938 (base16-string->bytevector
939 "288629c76fac4b33556f4b7ab57ba21ae202da65ba8b77466e6d598e31990790"))))
940 ("rust-num-traits"
941 ,(origin
942 (method url-fetch)
943 (uri (crate-uri "num-traits" "0.1.40"))
0d570683 944 (file-name "rust-num-traits-0.1.40")
d53fb678
NM
945 (sha256
946 (base16-string->bytevector
947 "99843c856d68d8b4313b03a17e33c4bb42ae8f6610ea81b28abe076ac721b9b0"))))
948 ("rust-num_cpus"
949 ,(origin
950 (method url-fetch)
951 (uri (crate-uri "num_cpus" "1.7.0"))
0d570683 952 (file-name "rust-num_cpus-1.7.0")
d53fb678
NM
953 (sha256
954 (base16-string->bytevector
955 "514f0d73e64be53ff320680ca671b64fe3fb91da01e1ae2ddc99eb51d453b20d"))))
956 ("rust-openssl"
957 ,(origin
958 (method url-fetch)
959 (uri (crate-uri "openssl" "0.9.19"))
0d570683 960 (file-name "rust-openssl-0.9.19")
d53fb678
NM
961 (sha256
962 (base16-string->bytevector
963 "816914b22eb15671d62c73442a51978f311e911d6a6f6cbdafa6abce1b5038fc"))))
964 ("rust-openssl-probe"
965 ,(origin
966 (method url-fetch)
967 (uri (crate-uri "openssl-probe" "0.1.1"))
0d570683 968 (file-name "rust-openssl-probe-0.1.1")
d53fb678
NM
969 (sha256
970 (base16-string->bytevector
971 "d98df0270d404ccd3c050a41d579c52d1db15375168bb3471e04ec0f5f378daf"))))
972 ("rust-openssl-sys"
973 ,(origin
974 (method url-fetch)
975 (uri (crate-uri "openssl-sys" "0.9.19"))
0d570683 976 (file-name "rust-openssl-sys-0.9.19")
d53fb678
NM
977 (sha256
978 (base16-string->bytevector
979 "1e4c63a7d559c1e5afa6d6a9e6fa34bbc5f800ffc9ae08b72c605420b0c4f5e8"))))
980 ("rust-percent-encoding"
981 ,(origin
982 (method url-fetch)
983 (uri (crate-uri "percent-encoding" "1.0.0"))
0d570683 984 (file-name "rust-precent-encoding-1.0.0")
d53fb678
NM
985 (sha256
986 (base16-string->bytevector
987 "de154f638187706bde41d9b4738748933d64e6b37bdbffc0b47a97d16a6ae356"))))
988 ("rust-pkg-config"
989 ,(origin
990 (method url-fetch)
991 (uri (crate-uri "pkg-config" "0.3.9"))
0d570683 992 (file-name "rust-pkg-config-0.3.9")
893bc3f4 993 (sha256
d53fb678
NM
994 (base16-string->bytevector
995 "3a8b4c6b8165cd1a1cd4b9b120978131389f64bdaf456435caa41e630edba903"))))
893bc3f4
DM
996 ("rust-psapi-sys"
997 ,(origin
998 (method url-fetch)
999 (uri (crate-uri "psapi-sys" "0.1.0"))
0d570683 1000 (file-name "rust-psapi-sys-0.1.0")
893bc3f4 1001 (sha256
d53fb678
NM
1002 (base16-string->bytevector
1003 "abcd5d1a07d360e29727f757a9decb3ce8bc6e0efa8969cfaad669a8317a2478"))))
1004 ("rust-quote"
893bc3f4
DM
1005 ,(origin
1006 (method url-fetch)
d53fb678 1007 (uri (crate-uri "quote" "0.3.15"))
0d570683 1008 (file-name "rust-quote-0.3.15")
893bc3f4 1009 (sha256
d53fb678
NM
1010 (base16-string->bytevector
1011 "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"))))
1012 ("rust-rand"
1013 ,(origin
1014 (method url-fetch)
1015 (uri (crate-uri "rand" "0.3.16"))
0d570683 1016 (file-name "rust-rand-0.3.16")
d53fb678
NM
1017 (sha256
1018 (base16-string->bytevector
1019 "eb250fd207a4729c976794d03db689c9be1d634ab5a1c9da9492a13d8fecbcdf"))))
1020 ("rust-redox_syscall"
1021 ,(origin
1022 (method url-fetch)
1023 (uri (crate-uri "redox_syscall" "0.1.31"))
0d570683 1024 (file-name "rust-redox_syscall-0.1.31")
d53fb678
NM
1025 (sha256
1026 (base16-string->bytevector
1027 "8dde11f18c108289bef24469638a04dce49da56084f2d50618b226e47eb04509"))))
1028 ("rust-redox_termios"
893bc3f4
DM
1029 ,(origin
1030 (method url-fetch)
d53fb678 1031 (uri (crate-uri "redox_termios" "0.1.1"))
0d570683 1032 (file-name "rust-redox_termios-0.1.1")
893bc3f4 1033 (sha256
d53fb678
NM
1034 (base16-string->bytevector
1035 "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"))))
1036 ("rust-regex"
1037 ,(origin
1038 (method url-fetch)
1039 (uri (crate-uri "regex" "0.1.80"))
0d570683 1040 (file-name "rust-regex-0.1.80")
d53fb678
NM
1041 (sha256
1042 (base16-string->bytevector
1043 "4fd4ace6a8cf7860714a2c2280d6c1f7e6a413486c13298bbc86fd3da019402f"))))
1044 ("rust-regex-0.2.2"
1045 ,(origin
1046 (method url-fetch)
1047 (uri (crate-uri "regex" "0.2.2"))
0d570683 1048 (file-name "rust-regex-0.2.2")
d53fb678
NM
1049 (sha256
1050 (base16-string->bytevector
1051 "1731164734096285ec2a5ec7fea5248ae2f5485b3feeb0115af4fda2183b2d1b"))))
893bc3f4
DM
1052 ("rust-regex-syntax"
1053 ,(origin
1054 (method url-fetch)
1055 (uri (crate-uri "regex-syntax" "0.3.9"))
0d570683 1056 (file-name "rust-regex-syntax-0.3.9")
893bc3f4 1057 (sha256
d53fb678
NM
1058 (base16-string->bytevector
1059 "f9ec002c35e86791825ed294b50008eea9ddfc8def4420124fbc6b08db834957"))))
1060 ("rust-regex-syntax-0.4.1"
893bc3f4
DM
1061 ,(origin
1062 (method url-fetch)
d53fb678 1063 (uri (crate-uri "regex-syntax" "0.4.1"))
0d570683 1064 (file-name "rust-regex-syntax-0.4.1")
893bc3f4 1065 (sha256
d53fb678
NM
1066 (base16-string->bytevector
1067 "ad890a5eef7953f55427c50575c680c42841653abd2b028b68cd223d157f62db"))))
1068 ("rust-rustc-demangle"
893bc3f4
DM
1069 ,(origin
1070 (method url-fetch)
d53fb678 1071 (uri (crate-uri "rustc-demangle" "0.1.5"))
0d570683 1072 (file-name "rust-rustc-demangle-0.1.5")
893bc3f4 1073 (sha256
d53fb678
NM
1074 (base16-string->bytevector
1075 "aee45432acc62f7b9a108cc054142dac51f979e69e71ddce7d6fc7adf29e817e"))))
1076 ("rust-rustc-serialize"
893bc3f4
DM
1077 ,(origin
1078 (method url-fetch)
d53fb678 1079 (uri (crate-uri "rustc-serialize" "0.3.24"))
0d570683 1080 (file-name "rust-rustc-serialize-0.3.24")
893bc3f4 1081 (sha256
d53fb678
NM
1082 (base16-string->bytevector
1083 "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"))))
1084 ("rust-same-file"
893bc3f4
DM
1085 ,(origin
1086 (method url-fetch)
d53fb678 1087 (uri (crate-uri "same-file" "0.1.3"))
0d570683 1088 (file-name "rust-same-file-0.1.3")
893bc3f4 1089 (sha256
d53fb678
NM
1090 (base16-string->bytevector
1091 "d931a44fdaa43b8637009e7632a02adc4f2b2e0733c08caa4cf00e8da4a117a7"))))
1092 ("rust-scoped-tls"
893bc3f4
DM
1093 ,(origin
1094 (method url-fetch)
d53fb678 1095 (uri (crate-uri "scoped-tls" "0.1.0"))
0d570683 1096 (file-name "rust-scoped-tls-0.1.0")
893bc3f4 1097 (sha256
d53fb678
NM
1098 (base16-string->bytevector
1099 "f417c22df063e9450888a7561788e9bd46d3bb3c1466435b4eccb903807f147d"))))
1100 ("rust-scopeguard"
893bc3f4
DM
1101 ,(origin
1102 (method url-fetch)
d53fb678 1103 (uri (crate-uri "scopeguard" "0.1.2"))
0d570683 1104 (file-name "rust-scopeguard-0.1.2")
893bc3f4 1105 (sha256
d53fb678
NM
1106 (base16-string->bytevector
1107 "59a076157c1e2dc561d8de585151ee6965d910dd4dcb5dabb7ae3e83981a6c57"))))
1108 ("rust-semver"
893bc3f4
DM
1109 ,(origin
1110 (method url-fetch)
d53fb678 1111 (uri (crate-uri "semver" "0.8.0"))
0d570683 1112 (file-name "rust-semver-0.8.0")
893bc3f4 1113 (sha256
d53fb678
NM
1114 (base16-string->bytevector
1115 "bee2bc909ab2d8d60dab26e8cad85b25d795b14603a0dcb627b78b9d30b6454b"))))
1116 ("rust-semver-parser"
893bc3f4
DM
1117 ,(origin
1118 (method url-fetch)
d53fb678 1119 (uri (crate-uri "semver-parser" "0.7.0"))
0d570683 1120 (file-name "rust-semver-parser-0.7.0")
893bc3f4 1121 (sha256
d53fb678
NM
1122 (base16-string->bytevector
1123 "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"))))
1124 ("rust-serde"
893bc3f4
DM
1125 ,(origin
1126 (method url-fetch)
d53fb678 1127 (uri (crate-uri "serde" "1.0.15"))
0d570683 1128 (file-name "rust-serde-1.0.15")
893bc3f4 1129 (sha256
d53fb678
NM
1130 (base16-string->bytevector
1131 "6a7046c9d4c6c522d10b2d098f9bebe2bef227e0e74044d8c1bfcf6b476af799"))))
1132 ("rust-serde_derive"
893bc3f4
DM
1133 ,(origin
1134 (method url-fetch)
d53fb678 1135 (uri (crate-uri "serde_derive" "1.0.15"))
0d570683 1136 (file-name "rust-serde_derive-1.0.15")
893bc3f4 1137 (sha256
d53fb678
NM
1138 (base16-string->bytevector
1139 "1afcaae083fd1c46952a315062326bc9957f182358eb7da03b57ef1c688f7aa9"))))
1140 ("rust-serde_derive_internals"
893bc3f4
DM
1141 ,(origin
1142 (method url-fetch)
d53fb678 1143 (uri (crate-uri "serde_derive_internals" "0.16.0"))
0d570683 1144 (file-name "rust-serde_derive_internals-0.16.0")
893bc3f4 1145 (sha256
d53fb678
NM
1146 (base16-string->bytevector
1147 "bd381f6d01a6616cdba8530492d453b7761b456ba974e98768a18cad2cd76f58"))))
1148 ("rust-serde_ignored"
893bc3f4
DM
1149 ,(origin
1150 (method url-fetch)
d53fb678 1151 (uri (crate-uri "serde_ignored" "0.0.4"))
0d570683 1152 (file-name "rust-serde_ignored-0.0.4")
893bc3f4 1153 (sha256
d53fb678
NM
1154 (base16-string->bytevector
1155 "190e9765dcedb56be63b6e0993a006c7e3b071a016a304736e4a315dc01fb142"))))
1156 ("rust-serde_json"
893bc3f4
DM
1157 ,(origin
1158 (method url-fetch)
d53fb678 1159 (uri (crate-uri "serde_json" "1.0.3"))
0d570683 1160 (file-name "rust-serde_json-1.0.3")
893bc3f4 1161 (sha256
d53fb678
NM
1162 (base16-string->bytevector
1163 "d243424e06f9f9c39e3cd36147470fd340db785825e367625f79298a6ac6b7ac"))))
1164 ("rust-shell-escape"
893bc3f4
DM
1165 ,(origin
1166 (method url-fetch)
d53fb678 1167 (uri (crate-uri "shell-escape" "0.1.3"))
0d570683 1168 (file-name "rust-shell-escape-0.1.3")
893bc3f4 1169 (sha256
d53fb678
NM
1170 (base16-string->bytevector
1171 "dd5cc96481d54583947bfe88bf30c23d53f883c6cd0145368b69989d97b84ef8"))))
1172 ("rust-socket2"
893bc3f4
DM
1173 ,(origin
1174 (method url-fetch)
d53fb678 1175 (uri (crate-uri "socket2" "0.2.3"))
0d570683 1176 (file-name "rust-socket2-0.2.3")
893bc3f4 1177 (sha256
d53fb678
NM
1178 (base16-string->bytevector
1179 "9e76b159741052c7deaa9fd0b5ca6b5f79cecf525ed665abfe5002086c6b2791"))))
1180 ("rust-strsim"
893bc3f4
DM
1181 ,(origin
1182 (method url-fetch)
d53fb678 1183 (uri (crate-uri "strsim" "0.6.0"))
0d570683 1184 (file-name "rust-strsim-0.6.0")
893bc3f4 1185 (sha256
d53fb678
NM
1186 (base16-string->bytevector
1187 "b4d15c810519a91cf877e7e36e63fe068815c678181439f2f29e2562147c3694"))))
1188 ("rust-syn"
893bc3f4
DM
1189 ,(origin
1190 (method url-fetch)
d53fb678 1191 (uri (crate-uri "syn" "0.11.11"))
0d570683 1192 (file-name "rust-syn-0.11.11")
893bc3f4 1193 (sha256
d53fb678
NM
1194 (base16-string->bytevector
1195 "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"))))
1196 ("rust-synom"
893bc3f4
DM
1197 ,(origin
1198 (method url-fetch)
d53fb678 1199 (uri (crate-uri "synom" "0.11.3"))
0d570683 1200 (file-name "rust-synom-0.11.3")
893bc3f4 1201 (sha256
d53fb678
NM
1202 (base16-string->bytevector
1203 "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"))))
1204 ("rust-tar"
893bc3f4
DM
1205 ,(origin
1206 (method url-fetch)
d53fb678 1207 (uri (crate-uri "tar" "0.4.13"))
0d570683 1208 (file-name "rust-tar-0.4.13")
893bc3f4 1209 (sha256
d53fb678
NM
1210 (base16-string->bytevector
1211 "281285b717926caa919ad905ef89c63d75805c7d89437fb873100925a53f2b1b"))))
1212 ("rust-tempdir"
893bc3f4
DM
1213 ,(origin
1214 (method url-fetch)
d53fb678 1215 (uri (crate-uri "tempdir" "0.3.5"))
0d570683 1216 (file-name "rust-tempdir-0.3.5")
893bc3f4 1217 (sha256
d53fb678
NM
1218 (base16-string->bytevector
1219 "87974a6f5c1dfb344d733055601650059a3363de2a6104819293baff662132d6"))))
1220 ("rust-termcolor"
893bc3f4
DM
1221 ,(origin
1222 (method url-fetch)
d53fb678 1223 (uri (crate-uri "termcolor" "0.3.3"))
0d570683 1224 (file-name "rust-termcolor-0.3.3")
893bc3f4 1225 (sha256
d53fb678
NM
1226 (base16-string->bytevector
1227 "9065bced9c3e43453aa3d56f1e98590b8455b341d2fa191a1090c0dd0b242c75"))))
1228 ("rust-termion"
893bc3f4
DM
1229 ,(origin
1230 (method url-fetch)
d53fb678 1231 (uri (crate-uri "termion" "1.5.1"))
0d570683 1232 (file-name "rust-termion-1.5.1")
893bc3f4 1233 (sha256
d53fb678
NM
1234 (base16-string->bytevector
1235 "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096"))))
1236 ("rust-thread-id"
893bc3f4
DM
1237 ,(origin
1238 (method url-fetch)
d53fb678 1239 (uri (crate-uri "thread-id" "2.0.0"))
0d570683 1240 (file-name "rust-thread-id-2.0.0")
893bc3f4 1241 (sha256
d53fb678
NM
1242 (base16-string->bytevector
1243 "a9539db560102d1cef46b8b78ce737ff0bb64e7e18d35b2a5688f7d097d0ff03"))))
1244 ("rust-thread_local"
893bc3f4
DM
1245 ,(origin
1246 (method url-fetch)
d53fb678 1247 (uri (crate-uri "thread_local" "0.2.7"))
0d570683 1248 (file-name "rust-thread_local-0.2.7")
893bc3f4 1249 (sha256
d53fb678
NM
1250 (base16-string->bytevector
1251 "8576dbbfcaef9641452d5cf0df9b0e7eeab7694956dd33bb61515fb8f18cfdd5"))))
1252 ("rust-thread_local-0.3.4"
893bc3f4
DM
1253 ,(origin
1254 (method url-fetch)
d53fb678 1255 (uri (crate-uri "thread_local" "0.3.4"))
0d570683 1256 (file-name "rust-thread_local-0.3.4")
893bc3f4 1257 (sha256
d53fb678
NM
1258 (base16-string->bytevector
1259 "1697c4b57aeeb7a536b647165a2825faddffb1d3bad386d507709bd51a90bb14"))))
1260 ("rust-toml"
893bc3f4
DM
1261 ,(origin
1262 (method url-fetch)
d53fb678 1263 (uri (crate-uri "toml" "0.4.5"))
0d570683 1264 (file-name "rust-toml-0.4.5")
893bc3f4 1265 (sha256
d53fb678
NM
1266 (base16-string->bytevector
1267 "a7540f4ffc193e0d3c94121edb19b055670d369f77d5804db11ae053a45b6e7e"))))
1268 ("rust-unicode-bidi"
893bc3f4
DM
1269 ,(origin
1270 (method url-fetch)
d53fb678 1271 (uri (crate-uri "unicode-bidi" "0.3.4"))
0d570683 1272 (file-name "rust-unicode-bidi-0.3.4")
893bc3f4 1273 (sha256
d53fb678
NM
1274 (base16-string->bytevector
1275 "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"))))
1276 ("rust-unicode-normalization"
893bc3f4
DM
1277 ,(origin
1278 (method url-fetch)
d53fb678 1279 (uri (crate-uri "unicode-normalization" "0.1.5"))
0d570683 1280 (file-name "rust-unicode-normalization-0.1.5")
893bc3f4 1281 (sha256
d53fb678
NM
1282 (base16-string->bytevector
1283 "51ccda9ef9efa3f7ef5d91e8f9b83bbe6955f9bf86aec89d5cce2c874625920f"))))
1284 ("rust-unicode-xid"
893bc3f4
DM
1285 ,(origin
1286 (method url-fetch)
d53fb678 1287 (uri (crate-uri "unicode-xid" "0.0.4"))
0d570683 1288 (file-name "rust-unicode-xid-0.0.4")
893bc3f4 1289 (sha256
d53fb678
NM
1290 (base16-string->bytevector
1291 "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"))))
1292 ("rust-unreachable"
9ea0cdaf
DM
1293 ,(origin
1294 (method url-fetch)
d53fb678 1295 (uri (crate-uri "unreachable" "1.0.0"))
0d570683 1296 (file-name "rust-unreachable-1.0.0")
d53fb678
NM
1297 (sha256
1298 (base16-string->bytevector
1299 "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56"))))
1300 ("rust-url"
1301 ,(origin
1302 (method url-fetch)
1303 (uri (crate-uri "url" "1.5.1"))
0d570683 1304 (file-name "rust-url-1.5.1")
d53fb678
NM
1305 (sha256
1306 (base16-string->bytevector
1307 "eeb819346883532a271eb626deb43c4a1bb4c4dd47c519bd78137c3e72a4fe27"))))
1308 ("rust-userenv-sys"
1309 ,(origin
1310 (method url-fetch)
1311 (uri (crate-uri "userenv-sys" "0.2.0"))
0d570683 1312 (file-name "rust-userenv-sys-0.2.0")
9ea0cdaf 1313 (sha256
d53fb678
NM
1314 (base16-string->bytevector
1315 "71d28ea36bbd9192d75bd9fa9b39f96ddb986eaee824adae5d53b6e51919b2f3"))))
1316 ("rust-utf8-ranges"
1317 ,(origin
1318 (method url-fetch)
1319 (uri (crate-uri "utf8-ranges" "0.1.3"))
0d570683 1320 (file-name "rust-utf8-ranges-0.1.3")
d53fb678
NM
1321 (sha256
1322 (base16-string->bytevector
1323 "a1ca13c08c41c9c3e04224ed9ff80461d97e121589ff27c753a16cb10830ae0f"))))
1324 ("rust-utf8-ranges-1.0.0"
1325 ,(origin
1326 (method url-fetch)
1327 (uri (crate-uri "utf8-ranges" "1.0.0"))
0d570683 1328 (file-name "rust-utf8-ranges-1.0.0")
d53fb678
NM
1329 (sha256
1330 (base16-string->bytevector
1331 "662fab6525a98beff2921d7f61a39e7d59e0b425ebc7d0d9e66d316e55124122"))))
1332 ("rust-vcpkg"
1333 ,(origin
1334 (method url-fetch)
1335 (uri (crate-uri "vcpkg" "0.2.2"))
0d570683 1336 (file-name "rust-vcpkg-0.2.2")
d53fb678
NM
1337 (sha256
1338 (base16-string->bytevector
1339 "9e0a7d8bed3178a8fb112199d466eeca9ed09a14ba8ad67718179b4fd5487d0b"))))
1340 ("rust-void"
1341 ,(origin
1342 (method url-fetch)
1343 (uri (crate-uri "void" "1.0.2"))
0d570683 1344 (file-name "rust-void-1.0.2")
d53fb678
NM
1345 (sha256
1346 (base16-string->bytevector
1347 "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"))))
1348 ("rust-walkdir"
1349 ,(origin
1350 (method url-fetch)
1351 (uri (crate-uri "walkdir" "1.0.7"))
0d570683 1352 (file-name "rust-walkdir-1.0.7")
d53fb678
NM
1353 (sha256
1354 (base16-string->bytevector
1355 "bb08f9e670fab86099470b97cd2b252d6527f0b3cc1401acdb595ffc9dd288ff"))))
1356 ("rust-winapi"
1357 ,(origin
1358 (method url-fetch)
1359 (uri (crate-uri "winapi" "0.2.8"))
0d570683 1360 (file-name "rust-winapi-0.2.8")
d53fb678
NM
1361 (sha256
1362 (base16-string->bytevector
1363 "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"))))
1364 ("rust-winapi-build"
1365 ,(origin
1366 (method url-fetch)
1367 (uri (crate-uri "winapi-build" "0.1.1"))
0d570683 1368 (file-name "rust-winapi-build-0.1.1")
d53fb678
NM
1369 (sha256
1370 (base16-string->bytevector
1371 "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"))))
1372 ("rust-wincolor"
1373 ,(origin
1374 (method url-fetch)
1375 (uri (crate-uri "wincolor" "0.1.4"))
0d570683 1376 (file-name "rust-wincolor-0.1.4")
d53fb678
NM
1377 (sha256
1378 (base16-string->bytevector
1379 "a39ee4464208f6430992ff20154216ab2357772ac871d994c51628d60e58b8b0"))))
1380 ("rust-ws2_32-sys"
1381 ,(origin
1382 (method url-fetch)
1383 (uri (crate-uri "ws2_32-sys" "0.2.1"))
0d570683 1384 (file-name "rust-ws2_32-sys-0.2.1")
d53fb678
NM
1385 (sha256
1386 (base16-string->bytevector
1387 "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"))))))
b5a09649
DC
1388 (arguments
1389 `(#:cargo ,cargo-bootstrap
d53fb678 1390 #:rustc ,rustc ; Force to use rustc from current file
f0eb0a4b
DM
1391 #:modules
1392 ((ice-9 match)
1393 (srfi srfi-1) ; 'every
1394 (guix build utils)
1395 (guix build cargo-build-system))
b5a09649
DC
1396 #:phases
1397 (modify-phases %standard-phases
d53fb678
NM
1398 (add-after 'unpack 'unpack-dependencies
1399 (lambda* (#:key inputs outputs #:allow-other-keys)
f0eb0a4b
DM
1400 (define (unpack source target)
1401 (mkdir-p target)
1402 (with-directory-excursion target
1403 (zero? (system* "tar" "xf"
1404 source
1405 "--strip-components=1"))))
1406 (define (touch file-name)
1407 (call-with-output-file file-name (const #t)))
1408 (define (install-rust-library entry)
1409 (match entry
1410 ((name . src)
1411 (if (string-prefix? "rust-" name)
d53fb678
NM
1412 (let* ((rust-length (string-length "rust-"))
1413 (rust-name (string-drop name rust-length))
1414 (rsrc (string-append "vendor/" rust-name))
1415 (unpack-status (unpack src rsrc)))
1416 (touch (string-append rsrc "/.cargo-ok"))
1417 (generate-checksums rsrc src)
1418 unpack-status)))
f0eb0a4b 1419 (_ #t)))
d53fb678
NM
1420 (mkdir "vendor")
1421 (every install-rust-library inputs)))
1422 (add-after 'patch-generated-file-shebangs 'patch-cargo-checksums
b5a09649 1423 (lambda* (#:key inputs #:allow-other-keys)
d53fb678
NM
1424 (substitute* "Cargo.lock"
1425 (("(\"checksum .* = )\".*\"" all name)
1426 (string-append name "\"" ,%cargo-reference-hash "\"")))
1427 (for-each
1428 (lambda (filename)
1429 (use-modules (guix build cargo-build-system))
1430 (delete-file filename)
1431 (let* ((dir (dirname filename)))
1432 (display (string-append
1433 "patch-cargo-checksums: generate-checksums for "
1434 dir "\n"))
1435 (generate-checksums dir ,%cargo-reference-project-file)))
1436 (find-files "vendor" ".cargo-checksum.json"))
1437 #t))
1438 (replace 'configure
1439 (lambda* (#:key inputs outputs #:allow-other-keys)
1440 (substitute* "tests/build.rs"
1441 (("/usr/bin/env") (which "env"))
1442 ;; Guix llvm compiled without asmjs-unknown-emscripten at all
1443 (("fn wasm32_final_outputs") "#[ignore]\nfn wasm32_final_outputs"))
1444 (substitute* "tests/death.rs"
1445 ;; Stuck when built in container
1446 (("fn ctrl_c_kills_everyone") "#[ignore]\nfn ctrl_c_kills_everyone"))
1447 (mkdir ".cargo")
1448 (call-with-output-file ".cargo/config"
1449 (lambda (port)
1450 (display "
893bc3f4
DM
1451[source.crates-io]
1452registry = 'https://github.com/rust-lang/crates.io-index'
1453replace-with = 'vendored-sources'
1454
1455[source.vendored-sources]
1456directory = 'vendor'
d53fb678
NM
1457" port)))
1458 ;; Disable test for cross compilation support
1459 (setenv "CFG_DISABLE_CROSS_TESTS" "1")
1460 (setenv "SHELL" (which "sh"))
1461 (setenv "CONFIG_SHELL" (which "sh"))
1462 (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
1463 #t)))))
b5a09649
DC
1464 (home-page "https://github.com/rust-lang/cargo")
1465 (synopsis "Build tool and package manager for Rust")
1466 (description "Cargo is a tool that allows Rust projects to declare their
1467dependencies and ensures a reproducible build.")
1468 ;; Cargo is dual licensed Apache and MIT. Also contains
1469 ;; code from openssl which is GPL2 with linking exception.
1470 (license (list license:asl2.0 license:expat license:gpl2))))