gnu: Add rust@1.19.0.
* gnu/packages/rust.scm (rust-1.23)[build-system, native-inputs, inputs, native-search-paths, synopsis, description, home-page, license]: Move to... (rust-1.19): ... here. New variable. (rust-1.23)[arguments]<#:phases>[set-env, patch-tests, patch-cargo-checksums]: Move to... (rust-1.19): ... here. (rust-1.19)[arguments]<#:phases>[configure, check, install]: Replace by no-op.
This commit is contained in:
parent
d2dd939e68
commit
8fdde58103
|
@ -150,30 +150,12 @@ in turn be used to build the final Rust.")
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet '(begin (delete-file-recursively "src/llvm") #t))))
|
(snippet '(begin (delete-file-recursively "src/llvm") #t))))
|
||||||
|
|
||||||
(define-public rust-1.23
|
(define-public rust-1.19
|
||||||
(package
|
(package
|
||||||
(name "rust")
|
(name "rust")
|
||||||
(version "1.23.0")
|
(version "1.19.0")
|
||||||
(source (rust-source version "14fb8vhjzsxlbi6yrn1r6fl5dlbdd1m92dn5zj5gmzfwf4w9ar3l"))
|
(source (rust-source version "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm"))
|
||||||
(build-system gnu-build-system)
|
(outputs '("out" "cargo"))
|
||||||
(native-inputs
|
|
||||||
`(("bison" ,bison) ; For the tests
|
|
||||||
("cmake" ,cmake)
|
|
||||||
("flex" ,flex) ; For the tests
|
|
||||||
("gdb" ,gdb) ; For the tests
|
|
||||||
("git" ,git)
|
|
||||||
("procps" ,procps) ; For the tests
|
|
||||||
("python-2" ,python-2)
|
|
||||||
("rustc-bootstrap" ,rust-bootstrap)
|
|
||||||
("cargo-bootstrap" ,rust-bootstrap "cargo")
|
|
||||||
("pkg-config" ,pkg-config) ; For "cargo"
|
|
||||||
("which" ,which)))
|
|
||||||
(inputs
|
|
||||||
`(("jemalloc" ,jemalloc-4.5.0)
|
|
||||||
("llvm" ,llvm-3.9.1)
|
|
||||||
("openssl" ,openssl)
|
|
||||||
("libcurl" ,curl))) ; For "cargo"
|
|
||||||
(outputs '("out" "doc" "cargo"))
|
|
||||||
(arguments
|
(arguments
|
||||||
`(#:imported-modules ,%cargo-build-system-modules ;for `generate-checksums'
|
`(#:imported-modules ,%cargo-build-system-modules ;for `generate-checksums'
|
||||||
#:phases
|
#:phases
|
||||||
|
@ -204,15 +186,6 @@ in turn be used to build the final Rust.")
|
||||||
;; <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00193.html>
|
;; <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00193.html>
|
||||||
(delete-file-recursively "src/test/run-make/linker-output-non-utf8")
|
(delete-file-recursively "src/test/run-make/linker-output-non-utf8")
|
||||||
#t)))
|
#t)))
|
||||||
(add-after 'patch-tests 'fix-mtime-bug
|
|
||||||
(lambda* _
|
|
||||||
(substitute* "src/build_helper/lib.rs"
|
|
||||||
;; Bug in Rust code.
|
|
||||||
;; Current implementation assume that if dst not exist then it's mtime
|
|
||||||
;; is 0, but in same time "src" have 0 mtime in guix build!
|
|
||||||
(("let threshold = mtime\\(dst\\);")
|
|
||||||
"if !dst.exists() {\nreturn false\n}\n let threshold = mtime(dst);"))
|
|
||||||
#t))
|
|
||||||
(add-after 'patch-source-shebangs 'patch-cargo-checksums
|
(add-after 'patch-source-shebangs 'patch-cargo-checksums
|
||||||
(lambda* _
|
(lambda* _
|
||||||
(substitute* "src/Cargo.lock"
|
(substitute* "src/Cargo.lock"
|
||||||
|
@ -229,6 +202,59 @@ in turn be used to build the final Rust.")
|
||||||
(generate-checksums dir ,%cargo-reference-project-file)))
|
(generate-checksums dir ,%cargo-reference-project-file)))
|
||||||
(find-files "src/vendor" ".cargo-checksum.json"))
|
(find-files "src/vendor" ".cargo-checksum.json"))
|
||||||
#t))
|
#t))
|
||||||
|
(replace 'configure
|
||||||
|
(const #t))
|
||||||
|
(replace 'check
|
||||||
|
(const #t))
|
||||||
|
(replace 'install
|
||||||
|
(const #t)))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("bison" ,bison) ; For the tests
|
||||||
|
("cmake" ,cmake)
|
||||||
|
("flex" ,flex) ; For the tests
|
||||||
|
("gdb" ,gdb) ; For the tests
|
||||||
|
("git" ,git)
|
||||||
|
("procps" ,procps) ; For the tests
|
||||||
|
("python-2" ,python-2)
|
||||||
|
("rustc-bootstrap" ,rust-bootstrap)
|
||||||
|
("cargo-bootstrap" ,rust-bootstrap "cargo")
|
||||||
|
("pkg-config" ,pkg-config) ; For "cargo"
|
||||||
|
("which" ,which)))
|
||||||
|
(inputs
|
||||||
|
`(("jemalloc" ,jemalloc-4.5.0)
|
||||||
|
("llvm" ,llvm-3.9.1)
|
||||||
|
("openssl" ,openssl)
|
||||||
|
("libcurl" ,curl))) ; For "cargo"
|
||||||
|
;; rustc invokes gcc, so we need to set its search paths accordingly.
|
||||||
|
(native-search-paths (package-native-search-paths gcc))
|
||||||
|
(synopsis "Compiler for the Rust progamming language")
|
||||||
|
(description "Rust is a systems programming language that provides memory
|
||||||
|
safety and thread safety guarantees.")
|
||||||
|
(home-page "https://www.rust-lang.org")
|
||||||
|
;; Dual licensed.
|
||||||
|
(license (list license:asl2.0 license:expat))))
|
||||||
|
|
||||||
|
(define-public rust-1.23
|
||||||
|
(package
|
||||||
|
(inherit rust-1.19)
|
||||||
|
(name "rust")
|
||||||
|
(version "1.23.0")
|
||||||
|
(source (rust-source version "14fb8vhjzsxlbi6yrn1r6fl5dlbdd1m92dn5zj5gmzfwf4w9ar3l"))
|
||||||
|
(outputs '("out" "doc" "cargo"))
|
||||||
|
(arguments
|
||||||
|
(substitute-keyword-arguments (package-arguments rust-1.19)
|
||||||
|
((#:phases phases)
|
||||||
|
`(modify-phases ,phases
|
||||||
|
(add-after 'patch-tests 'fix-mtime-bug
|
||||||
|
(lambda* _
|
||||||
|
(substitute* "src/build_helper/lib.rs"
|
||||||
|
;; Bug in Rust code.
|
||||||
|
;; Current implementation assume that if dst not exist then it's mtime
|
||||||
|
;; is 0, but in same time "src" have 0 mtime in guix build!
|
||||||
|
(("let threshold = mtime\\(dst\\);")
|
||||||
|
"if !dst.exists() {\nreturn false\n}\n let threshold = mtime(dst);"))
|
||||||
|
#t))
|
||||||
(replace 'configure
|
(replace 'configure
|
||||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
(let* ((out (assoc-ref outputs "out"))
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
@ -308,15 +334,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
|
||||||
(wrap-program (string-append out "/bin/rustc")
|
(wrap-program (string-append out "/bin/rustc")
|
||||||
`("PATH" ":" prefix (,(string-append ld-wrapper "/bin")))
|
`("PATH" ":" prefix (,(string-append ld-wrapper "/bin")))
|
||||||
`("LIBRARY_PATH" ":" suffix (,(string-append libc "/lib"))))
|
`("LIBRARY_PATH" ":" suffix (,(string-append libc "/lib"))))
|
||||||
#t))))))
|
#t)))))))))
|
||||||
;; rustc invokes gcc, so we need to set its search paths accordingly.
|
|
||||||
(native-search-paths (package-native-search-paths gcc))
|
|
||||||
(synopsis "Compiler for the Rust progamming language")
|
|
||||||
(description "Rust is a systems programming language that provides memory
|
|
||||||
safety and thread safety guarantees.")
|
|
||||||
(home-page "https://www.rust-lang.org")
|
|
||||||
;; Dual licensed.
|
|
||||||
(license (list license:asl2.0 license:expat))))
|
|
||||||
|
|
||||||
(define-public rust
|
(define-public rust
|
||||||
(let ((base-rust rust-1.23))
|
(let ((base-rust rust-1.23))
|
||||||
|
|
Loading…
Reference in New Issue