mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
Merge branch 'master' into staging
This commit is contained in:
commit
cbe96f1470
427 changed files with 31532 additions and 10189 deletions
|
@ -8,6 +8,7 @@
|
|||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Danny Milosavljevic <dannym+a@scratchpost.org>
|
||||
;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
|
||||
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -121,7 +122,7 @@
|
|||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/thepowersgang/mrustc.git")
|
||||
(url "https://github.com/thepowersgang/mrustc")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
|
@ -226,7 +227,7 @@ safety and thread safety guarantees.")
|
|||
(sha256 (base32 "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet '(begin (delete-file-recursively "src/llvm") #t))
|
||||
(patches (map search-patch '("rust-1.19-mrustc.patch")))))
|
||||
(patches (search-patches "rust-1.19-mrustc.patch"))))
|
||||
(outputs '("out" "cargo"))
|
||||
(properties '((timeout . 72000) ;20 hours
|
||||
(max-silent-time . 18000))) ;5 hours (for armel)
|
||||
|
@ -719,8 +720,8 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
|
|||
(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")))))
|
||||
(patches (search-patches
|
||||
"rust-1.25-accept-more-detailed-gdb-lines.patch"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments base-rust)
|
||||
((#:phases phases)
|
||||
|
@ -754,9 +755,9 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
|
|||
(source
|
||||
(origin
|
||||
(inherit (package-source base-rust))
|
||||
(patches (map search-patch
|
||||
'("rust-coresimd-doctest.patch"
|
||||
"rust-1.25-accept-more-detailed-gdb-lines.patch")))))
|
||||
(patches (search-patches
|
||||
"rust-coresimd-doctest.patch"
|
||||
"rust-1.25-accept-more-detailed-gdb-lines.patch"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments base-rust)
|
||||
((#:phases phases)
|
||||
|
@ -799,6 +800,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
|
|||
(("fn finds_author_git") "#[ignore]\nfn finds_author_git")
|
||||
(("fn finds_local_author_git") "#[ignore]\nfn finds_local_author_git"))
|
||||
#t))
|
||||
;; TODO(rebuild-rust): Remove this phase in rust-1.28 when rebuilding.
|
||||
(add-after 'patch-cargo-tests 'disable-cargo-test-for-nightly-channel
|
||||
(lambda* _
|
||||
;; This test failed to work on "nightly" channel builds
|
||||
|
@ -823,10 +825,10 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
|
|||
(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")))))
|
||||
(patches (search-patches "rust-coresimd-doctest.patch"
|
||||
"rust-bootstrap-stage0-test.patch"
|
||||
"rust-1.25-accept-more-detailed-gdb-lines.patch"
|
||||
"rust-reproducible-builds.patch"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments base-rust)
|
||||
((#:phases phases)
|
||||
|
@ -854,10 +856,10 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
|
|||
(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")))))
|
||||
(patches (search-patches "rust-coresimd-doctest.patch"
|
||||
"rust-bootstrap-stage0-test.patch"
|
||||
"rust-1.25-accept-more-detailed-gdb-lines.patch"
|
||||
"rust-reproducible-builds.patch"))))
|
||||
(inputs
|
||||
;; Use LLVM 6.0
|
||||
(alist-replace "llvm" (list llvm-6)
|
||||
|
@ -890,8 +892,8 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
|
|||
(source
|
||||
(origin
|
||||
(inherit (package-source base-rust))
|
||||
(patches (map search-patch '("rust-1.25-accept-more-detailed-gdb-lines.patch"
|
||||
"rust-reproducible-builds.patch"))))))))
|
||||
(patches (search-patches "rust-1.25-accept-more-detailed-gdb-lines.patch"
|
||||
"rust-reproducible-builds.patch")))))))
|
||||
|
||||
(define-public rust-1.30
|
||||
(let ((base-rust
|
||||
|
@ -1005,7 +1007,7 @@ move around."
|
|||
(delete-file-recursively "src/tools/lldb")
|
||||
(delete-file-recursively "vendor/jemalloc-sys/jemalloc")
|
||||
#t))
|
||||
(patches (map search-patch '("rust-reproducible-builds.patch")))
|
||||
(patches (search-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"))))
|
||||
|
@ -1140,12 +1142,16 @@ move around."
|
|||
(setenv "CARGO_HOME" cargo-home)
|
||||
#t))))))))))
|
||||
|
||||
;; TODO(rebuild-rust): Switch to LLVM 9 in 1.38 instead of 1.40.
|
||||
(define-public rust-1.38
|
||||
(let ((base-rust
|
||||
(rust-bootstrapped-package rust-1.37 "1.38.0"
|
||||
"101dlpsfkq67p0hbwx4acqq6n90dj4bbprndizpgh1kigk566hk4")))
|
||||
(package
|
||||
(inherit base-rust)
|
||||
#;(inputs
|
||||
(alist-replace "llvm" (list llvm-9)
|
||||
(package-inputs base-rust)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments base-rust)
|
||||
((#:phases phases)
|
||||
|
@ -1180,4 +1186,133 @@ move around."
|
|||
(generate-all-checksums "vendor")
|
||||
#t)))))))))
|
||||
|
||||
(define-public rust-1.40
|
||||
(let ((base-rust
|
||||
(rust-bootstrapped-package rust-1.39 "1.40.0"
|
||||
"1ba9llwhqm49w7sz3z0gqscj039m53ky9wxzhaj11z6yg1ah15yx")))
|
||||
(package
|
||||
(inherit base-rust)
|
||||
(inputs
|
||||
(alist-replace "llvm" (list llvm-9)
|
||||
(package-inputs base-rust)))
|
||||
(source
|
||||
(origin
|
||||
(inherit (package-source base-rust))
|
||||
;; llvm-emscripten is no longer bundled, as that codegen backend
|
||||
;; got removed.
|
||||
(snippet '(begin
|
||||
(delete-file-recursively "src/llvm-project")
|
||||
(delete-file-recursively "vendor/jemalloc-sys/jemalloc")
|
||||
#t))))
|
||||
(arguments
|
||||
;; Rust 1.40 does not ship rustc-internal libraries by default
|
||||
;; (see rustc-dev-split). This means that librustc_driver.so is no
|
||||
;; longer available in lib/rustlib/$target/lib, which is the directory
|
||||
;; included in the runpath of librustc_codegen_llvm-llvm.so.
|
||||
;; This is detected by our validate-runpath phase as an error, but it
|
||||
;; is harmless as the codegen backend is loaded by librustc_driver.so
|
||||
;; itself, which must at that point have been already loaded.
|
||||
;; As such, we skip validating the runpath for Rust 1.40.
|
||||
;; Rust 1.41 stopped putting the codegen backend in a separate library,
|
||||
;; which makes this workaround only necessary for this release.
|
||||
(cons* #:validate-runpath? #f
|
||||
(substitute-keyword-arguments (package-arguments base-rust)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
;; We often need to patch tests with various Guix-specific paths.
|
||||
;; This often increases the line length and makes tidy, rustc's
|
||||
;; style checker, complain. We could insert additional newlines
|
||||
;; or add an "// ignore-tidy-linelength" comment, but as an
|
||||
;; ignore comment must be used, both approaches are fragile due
|
||||
;; to upstream formatting changes. As such, disable running the
|
||||
;; linter during tests, since it's intended for rustc developers
|
||||
;; anyway.
|
||||
;;
|
||||
;; TODO(rebuild-rust): This phase could be added earlier to
|
||||
;; simplify a significant amount of code, but it would require
|
||||
;; rebuilding the entire rusty universe.
|
||||
(add-after 'patch-tests 'neuter-tidy
|
||||
(lambda _
|
||||
(substitute* "src/bootstrap/builder.rs"
|
||||
(("^.*::Tidy,") ""))
|
||||
#t))
|
||||
;; TODO(rebuild-rust): Adapt the find-files approach for
|
||||
;; earlier testsuite patches.
|
||||
(replace 'patch-command-uid-gid-test
|
||||
(lambda _
|
||||
(match (find-files "src/test" "command-uid-gid\\.rs")
|
||||
((file)
|
||||
(substitute* file
|
||||
(("/bin/sh") (which "sh")))))
|
||||
#t))
|
||||
(replace 'patch-command-exec-tests
|
||||
,(patch-command-exec-tests-phase
|
||||
'(match (find-files "src/test" "command-exec\\.rs")
|
||||
((file) file))))
|
||||
;; TODO(rebuild-rust): The test in question got fixed long ago.
|
||||
(delete 'disable-cargo-test-for-nightly-channel)
|
||||
;; The test got removed in commit 000fe63b6fc57b09828930cacbab20c2ee6e6d15
|
||||
;; "Remove painful test that is not pulling its weight"
|
||||
(delete 'remove-unsupported-tests)))))))))
|
||||
|
||||
(define-public rust-1.41
|
||||
(let ((base-rust
|
||||
(rust-bootstrapped-package rust-1.40 "1.41.1"
|
||||
"0ws5x0fxv57fyllsa6025h3q6j9v3m8nb3syl4x0hgkddq0kvj9q")))
|
||||
(package
|
||||
(inherit base-rust)
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments base-rust)
|
||||
((#:validate-runpath? _) #t))))))
|
||||
|
||||
(define-public rust-1.42
|
||||
(rust-bootstrapped-package rust-1.41 "1.42.0"
|
||||
"0x9lxs82may6c0iln0b908cxyn1cv7h03n5cmbx3j1bas4qzks6j"))
|
||||
|
||||
(define-public rust-1.43
|
||||
(rust-bootstrapped-package rust-1.42 "1.43.0"
|
||||
"18akhk0wz1my6y9vhardriy2ysc482z0fnjdcgs9gy59kmnarxkm"))
|
||||
|
||||
(define-public rust-1.44
|
||||
(rust-bootstrapped-package rust-1.43 "1.44.1"
|
||||
"0ww4z2v3gxgn3zddqzwqya1gln04p91ykbrflnpdbmcd575n8bky"))
|
||||
|
||||
(define-public rust-1.45
|
||||
(let ((base-rust
|
||||
(rust-bootstrapped-package rust-1.44 "1.45.0"
|
||||
"0z6dh0yd3fcm3qh960wi4s6fa6pxz9mh77psycsqfkkx5kqra15s")))
|
||||
(package
|
||||
(inherit base-rust)
|
||||
(source
|
||||
(origin
|
||||
(inherit (package-source base-rust))
|
||||
(patches (search-patches "rust-1.45-linker-locale.patch"))))
|
||||
(inputs
|
||||
(alist-replace "llvm" (list llvm-10)
|
||||
(package-inputs base-rust)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments base-rust)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
;; These tests make sure that the parser behaves properly when
|
||||
;; a source file starts with a shebang. Unfortunately,
|
||||
;; the patch-shebangs phase changes the meaning of these edge-cases.
|
||||
;; We skip the test since it's drastically unlikely Guix's packaging
|
||||
;; will introduce a bug here.
|
||||
(add-after 'patch-tests 'skip-shebang-tests
|
||||
(lambda _
|
||||
(with-directory-excursion "src/test/ui/parser/shebang"
|
||||
(delete-file "shebang-doc-comment.rs")
|
||||
(delete-file "sneaky-attrib.rs")
|
||||
#t)))
|
||||
;; This test case synchronizes itself by starting a localhost TCP
|
||||
;; server. This doesn't work as networking is not available.
|
||||
(add-after 'patch-tests 'skip-networking-test
|
||||
(lambda _
|
||||
(substitute* "src/tools/cargo/tests/testsuite/freshness.rs"
|
||||
(("fn linking_interrupted" all)
|
||||
(string-append "#[ignore] " all)))
|
||||
#t)))))))))
|
||||
|
||||
;; TODO(staging): Bump this variable to the latest packaged rust.
|
||||
(define-public rust rust-1.39)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue