gnu: rust: Make source derivations smaller.

* gnu/packages/rust.scm (rust-source-pre-1.32): Delete procedure.
(rust-bootstrapped-package-pre-1.32): Delete procedure.
(rust-bootstrapped-package): Remove optional keys, and return an origin.
(rust-uri): New variable.
(mrustc): Change native-input "rust" to use source of rust-1.19.
(rust-1.19)[source]: Define package source.
(rust-1.20): Use rust-bootstrapped-package.
(rust-1.21): Likewise.
(rust-1.22): Likewise.
(rust-1.23): Likewise.
(rust-1.24): Likewise.
(rust-1.25): Likewise.
(rust-1.26): Likewise.
(rust-1.27): Likewise.
(rust-1.28): Likewise.
(rust-1.29): Likewise.
(rust-1.30): Likewise.
(rust-1.31): Likewise.
(rust-1.32): Likewise.
(rust-1.33): Likewise.
(rust-1.34): Likewise.

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
master
Ivan Petkov 2019-05-02 04:11:06 -07:00 committed by Danny Milosavljevic
parent bea01c0d2b
commit 4ed20d3cfe
No known key found for this signature in database
GPG Key ID: E71A35542C30BAA5
1 changed files with 121 additions and 109 deletions

View File

@ -68,63 +68,20 @@
("mips64el-linux" "mips64el-unknown-linux-gnuabi64") ("mips64el-linux" "mips64el-unknown-linux-gnuabi64")
(_ (nix-system->gnu-triplet system)))) (_ (nix-system->gnu-triplet system))))
(define* (rust-uri version #:key (dist "static"))
(define* (rust-source-pre-1.32 version hash (string-append "https://" dist ".rust-lang.org/dist/"
#:key "rustc-" version "-src.tar.gz"))
(patches '())
(patch-flags '("-p1")))
(origin
(method url-fetch)
(uri (string-append "https://static.rust-lang.org/dist/"
"rustc-" version "-src.tar.gz"))
(sha256 (base32 hash))
(modules '((guix build utils)))
(snippet '(begin (delete-file-recursively "src/llvm") #t))
(patches (map search-patch patches))
(patch-flags patch-flags)))
(define* (rust-bootstrapped-package-pre-1.32 base-rust version checksum (define* (rust-bootstrapped-package base-rust version checksum)
#:key "Bootstrap rust VERSION with source checksum CHECKSUM using BASE-RUST."
(patches '())
(patch-flags '("-p1")))
"Bootstrap rust VERSION with source checksum CHECKSUM patched with PATCHES using BASE-RUST.
Specific to rust versions before 1.32."
(package (package
(inherit base-rust) (inherit base-rust)
(version version) (version version)
(source (source
(rust-source-pre-1.32 version checksum #:patches patches #:patch-flags patch-flags)) (origin
(native-inputs (inherit (package-source base-rust))
(alist-replace "cargo-bootstrap" (list base-rust "cargo") (uri (rust-uri version))
(alist-replace "rustc-bootstrap" (list base-rust) (sha256 (base32 checksum))))
(package-native-inputs base-rust))))))
(define* (rust-source version hash
#:key
(patches '())
(patch-flags '("-p1")))
(origin
(method url-fetch)
(uri (string-append "https://static.rust-lang.org/dist/"
"rustc-" version "-src.tar.gz"))
(sha256 (base32 hash))
(modules '((guix build utils)))
(snippet '(begin (delete-file-recursively "src/llvm")
(delete-file-recursively "vendor/jemalloc-sys/jemalloc")
#t))
(patches (map search-patch patches))
(patch-flags patch-flags)))
(define* (rust-bootstrapped-package base-rust version checksum
#:key
(patches '())
(patch-flags '("-p1")))
"Bootstrap rust VERSION with source checksum CHECKSUM patched with PATCHES using BASE-RUST."
(package
(inherit base-rust)
(version version)
(source
(rust-source version checksum #:patches patches #:patch-flags patch-flags))
(native-inputs (native-inputs
(alist-replace "cargo-bootstrap" (list base-rust "cargo") (alist-replace "cargo-bootstrap" (list base-rust "cargo")
(alist-replace "rustc-bootstrap" (list base-rust) (alist-replace "rustc-bootstrap" (list base-rust)
@ -154,8 +111,7 @@ Specific to rust versions before 1.32."
`(("bison" ,bison) `(("bison" ,bison)
("flex" ,flex) ("flex" ,flex)
;; Required for the libstd sources. ;; Required for the libstd sources.
("rustc" ("rustc" ,(package-source rust-1.19))))
,(rust-source-pre-1.32 "1.19.0" "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm"))))
(arguments (arguments
`(#:test-target "local_tests" `(#:test-target "local_tests"
#:make-flags (list (string-append "LLVM_CONFIG=" #:make-flags (list (string-append "LLVM_CONFIG="
@ -228,8 +184,14 @@ safety and thread safety guarantees.")
(package (package
(name "rust") (name "rust")
(version "1.19.0") (version "1.19.0")
(source (rust-source-pre-1.32 version "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm" (source
#:patches '("rust-1.19-mrustc.patch"))) (origin
(method url-fetch)
(uri (rust-uri "1.19.0"))
(sha256 (base32 "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm"))
(modules '((guix build utils)))
(snippet '(begin (delete-file-recursively "src/llvm") #t))
(patches (map search-patch '("rust-1.19-mrustc.patch")))))
(outputs '("out" "cargo")) (outputs '("out" "cargo"))
(properties '((timeout . 72000) ;20 hours (properties '((timeout . 72000) ;20 hours
(max-silent-time . 18000))) ;5 hours (for armel) (max-silent-time . 18000))) ;5 hours (for armel)
@ -464,10 +426,18 @@ safety and thread safety guarantees.")
(define-public rust-1.20 (define-public rust-1.20
(let ((base-rust (let ((base-rust
(rust-bootstrapped-package-pre-1.32 rust-1.19 "1.20.0" (rust-bootstrapped-package rust-1.19 "1.20.0"
"0542y4rnzlsrricai130mqyxl8r6rd991frb4qsnwb27yigqg91a"))) "0542y4rnzlsrricai130mqyxl8r6rd991frb4qsnwb27yigqg91a")))
(package (package
(inherit base-rust) (inherit base-rust)
(source
(origin
(inherit (package-source base-rust))
(snippet '(begin
(delete-file-recursively "src/jemalloc")
(delete-file-recursively "src/llvm")
#t))
(patches '())))
(outputs '("out" "doc" "cargo")) (outputs '("out" "doc" "cargo"))
;; Since rust-1.19 is local, it's quite probable that Hydra ;; Since rust-1.19 is local, it's quite probable that Hydra
;; will build rust-1.19 only as a dependency of rust-1.20. ;; will build rust-1.19 only as a dependency of rust-1.20.
@ -627,7 +597,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
#t)))))))))) #t))))))))))
(define-public rust-1.21 (define-public rust-1.21
(let ((base-rust (rust-bootstrapped-package-pre-1.32 rust-1.20 "1.21.0" (let ((base-rust (rust-bootstrapped-package rust-1.20 "1.21.0"
"1yj8lnxybjrybp00fqhxw8fpr641dh8wcn9mk44xjnsb4i1c21qp"))) "1yj8lnxybjrybp00fqhxw8fpr641dh8wcn9mk44xjnsb4i1c21qp")))
(package (package
(inherit base-rust) (inherit base-rust)
@ -643,7 +613,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
#t))))))))) #t)))))))))
(define-public rust-1.22 (define-public rust-1.22
(let ((base-rust (rust-bootstrapped-package-pre-1.32 rust-1.21 "1.22.1" (let ((base-rust (rust-bootstrapped-package rust-1.21 "1.22.1"
"1lrzzp0nh7s61wgfs2h6ilaqi6iq89f1pd1yaf65l87bssyl4ylb"))) "1lrzzp0nh7s61wgfs2h6ilaqi6iq89f1pd1yaf65l87bssyl4ylb")))
(package (package
(inherit base-rust) (inherit base-rust)
@ -659,7 +629,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
#t))))))))) #t)))))))))
(define-public rust-1.23 (define-public rust-1.23
(let ((base-rust (rust-bootstrapped-package-pre-1.32 rust-1.22 "1.23.0" (let ((base-rust (rust-bootstrapped-package rust-1.22 "1.23.0"
"14fb8vhjzsxlbi6yrn1r6fl5dlbdd1m92dn5zj5gmzfwf4w9ar3l"))) "14fb8vhjzsxlbi6yrn1r6fl5dlbdd1m92dn5zj5gmzfwf4w9ar3l")))
(package (package
(inherit base-rust) (inherit base-rust)
@ -678,7 +648,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
(define-public rust-1.24 (define-public rust-1.24
(let ((base-rust (let ((base-rust
(rust-bootstrapped-package-pre-1.32 rust-1.23 "1.24.1" (rust-bootstrapped-package rust-1.23 "1.24.1"
"1vv10x2h9kq7fxh2v01damdq8pvlp5acyh1kzcda9sfjx12kv99y"))) "1vv10x2h9kq7fxh2v01damdq8pvlp5acyh1kzcda9sfjx12kv99y")))
(package (package
(inherit base-rust) (inherit base-rust)
@ -700,11 +670,20 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
;;; Keep using llvm 3.9.1 until builds become determenistic ;;; Keep using llvm 3.9.1 until builds become determenistic
(define-public rust-1.25 (define-public rust-1.25
(let ((base-rust (let ((base-rust
(rust-bootstrapped-package-pre-1.32 rust-1.24 "1.25.0" (rust-bootstrapped-package rust-1.24 "1.25.0"
"0baxjr99311lvwdq0s38bipbnj72pn6fgbk6lcq7j555xq53mxpf" "0baxjr99311lvwdq0s38bipbnj72pn6fgbk6lcq7j555xq53mxpf")))
#:patches '("rust-1.25-accept-more-detailed-gdb-lines.patch"))))
(package (package
(inherit base-rust) (inherit base-rust)
(source
(origin
(inherit (package-source base-rust))
(snippet '(begin
(delete-file-recursively "src/jemalloc")
(delete-file-recursively "src/llvm")
(delete-file-recursively "src/llvm-emscripten")
#t))
(patches (map search-patch
'("rust-1.25-accept-more-detailed-gdb-lines.patch")))))
(arguments (arguments
(substitute-keyword-arguments (package-arguments base-rust) (substitute-keyword-arguments (package-arguments base-rust)
((#:phases phases) ((#:phases phases)
@ -731,12 +710,16 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
(define-public rust-1.26 (define-public rust-1.26
(let ((base-rust (let ((base-rust
(rust-bootstrapped-package-pre-1.32 rust-1.25 "1.26.2" (rust-bootstrapped-package rust-1.25 "1.26.2"
"0047ais0fvmqvngqkdsxgrzhb0kljg8wy85b01kbbjc88hqcz7pv" "0047ais0fvmqvngqkdsxgrzhb0kljg8wy85b01kbbjc88hqcz7pv")))
#:patches '("rust-coresimd-doctest.patch"
"rust-1.25-accept-more-detailed-gdb-lines.patch"))))
(package (package
(inherit base-rust) (inherit base-rust)
(source
(origin
(inherit (package-source base-rust))
(patches (map search-patch
'("rust-coresimd-doctest.patch"
"rust-1.25-accept-more-detailed-gdb-lines.patch")))))
(arguments (arguments
(substitute-keyword-arguments (package-arguments base-rust) (substitute-keyword-arguments (package-arguments base-rust)
((#:phases phases) ((#:phases phases)
@ -796,15 +779,17 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
(define-public rust-1.27 (define-public rust-1.27
(let ((base-rust (let ((base-rust
(rust-bootstrapped-package-pre-1.32 rust-1.26 "1.27.2" (rust-bootstrapped-package rust-1.26 "1.27.2"
"0pg1s37bhx9zqbynxyydq5j6q7kij9vxkcv8maz0m25prm88r0cs" "0pg1s37bhx9zqbynxyydq5j6q7kij9vxkcv8maz0m25prm88r0cs")))
#:patches
'("rust-coresimd-doctest.patch"
"rust-bootstrap-stage0-test.patch"
"rust-1.25-accept-more-detailed-gdb-lines.patch"
"rust-reproducible-builds.patch"))))
(package (package
(inherit base-rust) (inherit base-rust)
(source
(origin
(inherit (package-source base-rust))
(patches (map search-patch '("rust-coresimd-doctest.patch"
"rust-bootstrap-stage0-test.patch"
"rust-1.25-accept-more-detailed-gdb-lines.patch"
"rust-reproducible-builds.patch")))))
(arguments (arguments
(substitute-keyword-arguments (package-arguments base-rust) (substitute-keyword-arguments (package-arguments base-rust)
((#:phases phases) ((#:phases phases)
@ -825,15 +810,17 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
(define-public rust-1.28 (define-public rust-1.28
(let ((base-rust (let ((base-rust
(rust-bootstrapped-package-pre-1.32 rust-1.27 "1.28.0" (rust-bootstrapped-package rust-1.27 "1.28.0"
"11k4rn77bca2rikykkk9fmprrgjswd4x4kaq7fia08vgkir82nhx" "11k4rn77bca2rikykkk9fmprrgjswd4x4kaq7fia08vgkir82nhx")))
#:patches
'("rust-coresimd-doctest.patch"
"rust-bootstrap-stage0-test.patch"
"rust-1.25-accept-more-detailed-gdb-lines.patch"
"rust-reproducible-builds.patch"))))
(package (package
(inherit base-rust) (inherit base-rust)
(source
(origin
(inherit (package-source base-rust))
(patches (map search-patch '("rust-coresimd-doctest.patch"
"rust-bootstrap-stage0-test.patch"
"rust-1.25-accept-more-detailed-gdb-lines.patch"
"rust-reproducible-builds.patch")))))
(inputs (inputs
;; Use LLVM 6.0 ;; Use LLVM 6.0
(alist-replace "llvm" (list llvm-6) (alist-replace "llvm" (list llvm-6)
@ -859,24 +846,35 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
(define-public rust-1.29 (define-public rust-1.29
(let ((base-rust (let ((base-rust
(rust-bootstrapped-package-pre-1.32 rust-1.28 "1.29.2" (rust-bootstrapped-package rust-1.28 "1.29.2"
"1jb787080z754caa2w3w1amsygs4qlzj9rs1vy64firfmabfg22h" "1jb787080z754caa2w3w1amsygs4qlzj9rs1vy64firfmabfg22h")))
#:patches
'("rust-1.25-accept-more-detailed-gdb-lines.patch"
"rust-reproducible-builds.patch"))))
(package (package
(inherit base-rust)))) (inherit base-rust)
(source
(origin
(inherit (package-source base-rust))
(patches (map search-patch '("rust-1.25-accept-more-detailed-gdb-lines.patch"
"rust-reproducible-builds.patch"))))))))
(define-public rust-1.30 (define-public rust-1.30
(let ((base-rust (let ((base-rust
(rust-bootstrapped-package-pre-1.32 rust-1.29 "1.30.1" (rust-bootstrapped-package rust-1.29 "1.30.1"
"0aavdc1lqv0cjzbqwl5n59yd0bqdlhn0zas61ljf38yrvc18k8rn" "0aavdc1lqv0cjzbqwl5n59yd0bqdlhn0zas61ljf38yrvc18k8rn")))
#:patches
'("rust-1.25-accept-more-detailed-gdb-lines.patch"
"rust-1.30-gdb-llvm.patch"
"rust-reproducible-builds.patch"))))
(package (package
(inherit base-rust) (inherit base-rust)
(source
(origin
(inherit (package-source base-rust))
(snippet '(begin
(delete-file-recursively "src/jemalloc")
(delete-file-recursively "src/llvm")
(delete-file-recursively "src/llvm-emscripten")
(delete-file-recursively "src/tools/clang")
(delete-file-recursively "src/tools/lldb")
#t))
(patches (map search-patch '("rust-1.25-accept-more-detailed-gdb-lines.patch"
"rust-1.30-gdb-llvm.patch"
"rust-reproducible-builds.patch")))))
(inputs (inputs
;; Use LLVM 7.0 ;; Use LLVM 7.0
(alist-replace "llvm" (list llvm) (alist-replace "llvm" (list llvm)
@ -916,14 +914,16 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
(define-public rust-1.31 (define-public rust-1.31
(let ((base-rust (let ((base-rust
(rust-bootstrapped-package-pre-1.32 rust-1.30 "1.31.1" (rust-bootstrapped-package rust-1.30 "1.31.1"
"0sk84ff0cklybcp0jbbxcw7lk7mrm6kb6km5nzd6m64dy0igrlli" "0sk84ff0cklybcp0jbbxcw7lk7mrm6kb6km5nzd6m64dy0igrlli")))
#:patches
'("rust-1.25-accept-more-detailed-gdb-lines.patch"
"rust-1.30-gdb-llvm.patch"
"rust-reproducible-builds.patch"))))
(package (package
(inherit base-rust) (inherit base-rust)
(source
(origin
(inherit (package-source base-rust))
(patches (map search-patch '("rust-1.25-accept-more-detailed-gdb-lines.patch"
"rust-1.30-gdb-llvm.patch"
"rust-reproducible-builds.patch")))))
(arguments (arguments
(substitute-keyword-arguments (package-arguments base-rust) (substitute-keyword-arguments (package-arguments base-rust)
((#:phases phases) ((#:phases phases)
@ -960,13 +960,22 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
(define-public rust-1.32 (define-public rust-1.32
(let ((base-rust (let ((base-rust
(rust-bootstrapped-package rust-1.31 "1.32.0" (rust-bootstrapped-package rust-1.31 "1.32.0"
"0ji2l9xv53y27xy72qagggvq47gayr5lcv2jwvmfirx029vlqnac" "0ji2l9xv53y27xy72qagggvq47gayr5lcv2jwvmfirx029vlqnac")))
#:patches '("rust-reproducible-builds.patch")
;; the vendor directory has moved to the root of
;; the tarball, so we have to strip an extra prefix
#:patch-flags '("-p2"))))
(package (package
(inherit base-rust) (inherit base-rust)
(source
(origin
(inherit (package-source base-rust))
(snippet '(begin (delete-file-recursively "src/llvm")
(delete-file-recursively "src/llvm-emscripten")
(delete-file-recursively "src/tools/clang")
(delete-file-recursively "src/tools/lldb")
(delete-file-recursively "vendor/jemalloc-sys/jemalloc")
#t))
(patches (map search-patch '("rust-reproducible-builds.patch")))
;; the vendor directory has moved to the root of
;; the tarball, so we have to strip an extra prefix
(patch-flags '("-p2"))))
(inputs (inputs
;; Downgrade to LLVM 6, all LTO tests appear to fail with LLVM 7.0.1 ;; Downgrade to LLVM 6, all LTO tests appear to fail with LLVM 7.0.1
(alist-replace "llvm" (list llvm-6) (alist-replace "llvm" (list llvm-6)
@ -1013,10 +1022,14 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
(define-public rust-1.33 (define-public rust-1.33
(let ((base-rust (let ((base-rust
(rust-bootstrapped-package rust-1.32 "1.33.0" (rust-bootstrapped-package rust-1.32 "1.33.0"
"152x91mg7bz4ygligwjb05fgm1blwy2i70s2j03zc9jiwvbsh0as" "152x91mg7bz4ygligwjb05fgm1blwy2i70s2j03zc9jiwvbsh0as")))
#:patches '())))
(package (package
(inherit base-rust) (inherit base-rust)
(source
(origin
(inherit (package-source base-rust))
(patches '())
(patch-flags '("-p1"))))
(inputs (inputs
;; Upgrade to jemalloc@5.1.0 ;; Upgrade to jemalloc@5.1.0
(alist-replace "jemalloc" (list jemalloc) (alist-replace "jemalloc" (list jemalloc)
@ -1038,8 +1051,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
(define-public rust (define-public rust
(let ((base-rust (let ((base-rust
(rust-bootstrapped-package rust-1.33 "1.34.0" (rust-bootstrapped-package rust-1.33 "1.34.0"
"0n8z1wngkxab1rvixqg6w8b727hzpnm9wp9h8iy3mpbrzp7mmj3s" "0n8z1wngkxab1rvixqg6w8b727hzpnm9wp9h8iy3mpbrzp7mmj3s")))
#:patches '())))
(package (package
(inherit base-rust) (inherit base-rust)
(source (source